전체 글31 [Web]Servlet&JSP, Model1/Model2방식 차이와 스프링MVC - 초창기 웹서비스는 사용자 요청이 오면 html 이라는 정적인 파일만 주고받기 시작했다. 하지만 시간이 지나고 웹이 발.전하고 웹을 사용하는 사람이 많아지다 보니 동적으로 웹페이지를 만드는 기술들도 발전하기 시작했다. Servlet이란?클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술. 간단히 말해서, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술. 그런데 좀더 들어가서 설명하면 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램이다. Servlet동작 방식 Servlet 문제점하지만 서블릿 단점으로 java 코드안에 html이 삽임됨으로 , html 코드를 .. 2025. 1. 22. GitHub에 잘못 올라간 파일 제거하고 .gitignore에 추가하기 현재상황프로젝트를 세팅을 하고 .gitignore 파일을 추가하여 원격 저장소로 push를 했는데, 모르고 application.properties설정파일 민감한 정보들까지 깃허브에 올렸다. 기존에 있는 레포를 삭제하고 다시 추가하여 레포에 올려두 되지만, 깃을 잘 사용하기 위해서 다른 방법으로 문제를 해결해봤다. 처리 순서원격 저장소에서 application.properties 파일 삭제내 로컬 저장소에서, 원격저장소에 잘못 올라간 파일을 삭제함을 선언.gitignore에 올리지 않을 파일 저장원격 저장소 pull내 로컬 저장소의 내용 add, commit원격 저장소에 최종 push 원격 저장소에 해당 파일 삭제 github에 삭제하려는 파일에 들어가서 빨간박스에 표시된 삭제 버튼을 눌러 삭제.. 2024. 12. 24. [토이프로젝트/게시판] @트랜젝션 처리해주기 (게시판 댓글 삭제) 구현해야 할 기능 : 게시물의 댓글을 삭제하면 DB에 게시판 테이블에 댓글 갯수를 하나 감소 처리를 해주고, 댓글 테이블에서는 해당 댓글을 삭제 처리를 해줘야한다. 📝문제가 발생한 코드 CommentService클래스// 댓글 삭제 public int remove(Integer cno, Integer bno, String commenter) throws Exception { int rowCnt = boardDao.updateCommentCnt(bno,-1); //게시판 댓글 갯수도 -1 하나 감소 처리 commentDao.delete(cno, commenter); // 댓글을 삭제한다 } 처음에는 이렇게 작업을 처리해 주었다 remove()가.. 2024. 9. 20. JAR/WAR? 차이 / 빌드 와 배포 개념 Tomcat과 같은 WAS에서 우리가 개발한 WebApplication을 구동하기 위해서는 WebApplication을 war 혹은 war(exploded)로 배포하여 Tomcat에서 실행해야한다.해당 오류는 war파일에 문제가 생긴오류가 생겼다. 기존에 문제 있는 war(exploded)파일을 제거하고 다시 해당 프로젝트 war(exploded) 파일을 추가하면되는 간단한 문제지만 이를통해 war,jar파일의 차이가 뭐고 어느떄 war.jar 파일을 사용해 배포하는지 궁금해서 찾아보기로했다. ⭐WAR/JAR 파일이란?📌WAR( WepApplication Archive)웹 어플리케이션을 압축해 저장해 놓은 파일임.개발한 웹어플리케이션 프로젝트가 WAS에서 돌아갈 수 있는 구조를 담고 있으며 .. 2024. 9. 1. [Spring] @Autowired @Resource @Qualifire 차이 @Autowired 라는 어노테이션을 붙이면, 스프링 컨테이너 에서 타입으로 빈을 검색해서 참조 변수에 자동 주입해준다.검색된 빈이 n 개이면, 그중에 참조 변수와 이름이 일치하는 것을 주입한다. @Component class Door {} class Engine {}@Component class TurboEngine extends Engine {}@Component class SuperEngine extends Engine {}@Component class Car { String color; int oil; Engine engine; Door[] doors; @Autowired public Car(@Value("red") String color, @Value("100") .. 2024. 8. 29. [Spring] IoC/Di? 객체 주입 방법 ⭐IoC란 (제어의 역전)?프로그램 제어 흐름이 전통적인 방식과 다른 즉 개발자가 제어 하는것이 아닌, 프레임워크가 프로그램 제어 (객체 생성,호출,소멸) 하는 방식. ⭐IoC가 필요한 이유는? 객체를 관리해주는 프레임워크와 내가 구현 하고자 하는 부분으로 역할과 관심을 분리해 응집도를 높이고 결합도를 낮추며, 이에 따라 변경에 유연한 코드를 작성 할 수 있는 구조가 될 수 있기 때문에 제어를 역전한 것이다. ⭐DI란(의존성 주입)이란?스프링 컨테이너에서 객체를 주입해주는 방식이다. 의존 관계 주입 방법은 3가지가있다.1.필드 주입2.setter 주입3.생성자 주입 ⭐ (생성자 주입을 선호한다) 1. 필드주입@Componentclass Door {}@Component class Engine {} @C.. 2024. 8. 29. [Spring] Bean/component-scan 동작 과정 ⭐Bean 이란 ? spring 컨테이너가 관리하는 객체이가 바로 빈이다. new 연산자로 생성하는 자바 객체는 스프링이 관리하지 않기 떄문에 빈이 아니다 ⭐스프링 컨테이너Bean의 저장소, Bean을 저장,관리(생성,소멸,연결)을 스프링 컨테이너가 해준다. ⭐Bean 등록방법빈을 등록하는 방법은 3가지xml 파일에 직접 등록 @Bean 어노테이션을 이용@Component, @Controller, @Service, @Repository 어노테이션을 이용 1. 객체를 xml에 등록 2.@Bean 어노테이션을 이용package com.example.myapp.di;import org.springframework.beans.factory.annotation.Configu.. 2024. 8. 29. [Java] JVM , 자바 프로그램 실행 과정 ✅JVM(Java virtual Machine)PermalinkJvm은 자바를 실행하기 위한 가상 컴퓨터 이다.(자바로 작성된 애플리케이션은 모두 이 가상 Jvm 에서 실행)✅JDK(Java Development kit)자바 개발도구PermalinkJDK를 설치하면 JVM,JAVA API외에 자바를 개발하는데 필요한 프로그램들이 설치된다.Javac.exe 자바 컴파일러. 자바소스코드를 바이트코드로 컴파일java.exe 자바 인터프리터. 컴파일러가 생성한 바이트코드를 해석하고 실행한다.✅컴파일과 실행Permalink✅컴파일 과정Permalink.java 자바 소스코드 작성(.java는 사람이 이해할수있는언어,즉 본인이 작성한 소스코드)자바 컴파일러 javac를 통해 .class 파일 생성(.class파일은.. 2024. 8. 27. [Java] String, StringBuilder, StringBuffer의 차이 코딩을 하면서 문자열을 다루는 일은 엄청 많다. 하지만 3개의 클래스 전부 String, StringBuilder, StringBuffer 문자열을 다루는 클래스나, 정확히 어떤 차이를 갖고있는지 잘 알고 사용해야한다. String 불변 클래스String은 한번 생성되면 내용을 변경할수 없는 불변 클래스 이기떄문에 아래 예제처럼 문자의 결합을 하면 새로운 문자로 바뀌고 새로운 String의 인스턴스가 생성된다. 이러한 + 를 이용한 문자 결합은 성능이 떨어진다. String a = "abc"String b = "d" a = a+b ; StringBuffer 와 StringBuilder 가변 클래스String의 불편 클래스와 달리 StringBuffer 와 StringBuilde는 객체의 공간이 .. 2024. 7. 16. 이전 1 2 3 4 다음