Spring JDBC
·
Spring Boot
Jdbc API는 Connection , Statement, ResultSet으로 매우 번거롭다. 그래서 Spring JPA는 Spring에서 지원해주는 JdbcTemplate을 사용함으로써 트랜잭션 동기화와 트랜잭션 추상화가 가능해지고, 간단하게 표현이 가능해졌다. 이를 Spring Transaction이라고 하는데, 사용방법으로는 1. 프로그래밍형 2. 선언적 방법이 있다. 이번 블로그에서는 2번인 선언적 방법에 대해서 다를 예정이다. 1번 프로그맹형에 대해서 간단하게 다루자면 아래와 같다.[프로그래밍형 - JdbcTemplat 사용]JdbcTemplate 기능Connection , Statement, ResultSet 묶음PlatformTransactionManager 인터페이스 -> 트랜잭션 추상..
Spring MVC - Controller
·
Spring Boot
1. Controller에서 사용되는 어노테이션@Controller: Spring MVC의 Controller 클래스를 지정하는 Bean 객체 등록 어노테이션으로, 이 어노테이션이 붙은 클래스는 클라이언트의 요청을 처리하고 응답을 반환한다. 주로 @RequestMapping과 함께 사용되며, 뷰 페이지를 반환할 때 사용된다. @RequestMapping: URL 경로를 매핑하는 어노테이션으로, 클래스나 메서드 위에 클라이언트 요청을 특정 메서드에 연결한다. HTTP Method(GET, POST, PUT, DELETE 등)를 지정하여 요청을 세분화할 수 있다. @RestController (@Controller + @ReponseBody): @Controller와 달리 직접 데이터를 반환할 때 사용된다...
Spring MVC 아키텍쳐
·
Spring Boot
Model: 데이터에 대한 조회, 조작Controller: 어떤 요청을 받았을 때(= REST API = Method + URL), 어떤 웹 페이지를 반환할 것인가?요청을 받고, 그에 따른 연산을 시작시키고, 그 결과를 반환시킨다. URI가 정의되어있다.(엔드포인트)View: 어떤 요청을 받았을 때(= REST API = Method + URL), 어떤 웹 페이지를 반환할 것인가?유저가 보는 것:  웹 페이지 -> Controller가 반환해준 것유저가 하는 것: 자바스크립트 인터렉션 -> Controller 호출유저의 데이터(Model)를 바꿔달라는 요청을 View의 자바스크립트를 통해 Controller를 호출한다.   클라이언트가 요청을 보내면 서블릿 컨테이너가 요청을 받고 이를 디스패처 서블릿으로..
@어노테이션을 사용한 객체 생성 그리고 DTO
·
Spring Boot
Java에서 Lombok 라이브러리를 사용하면 자주 사용되는 메서드, 생성자, Getter/Setter 등을 자동으로 생성해주는 어노테이션을 제공하여 개발하는데 매우 도움이 된다. 이 중에서 자주 사용되는 생성자 관련 어노테이션과 그 사용 방식에 대해 알아보고자한다. @NoArgsConsructor, @RequiredArgsConstructor, @AllArgsConstructor뒤에 붙은 Constructor라는 단어부터 생성자를 만들어주는 역할을 의미한다고 생각할 수 있다. 객체 내부에 선언되어있는 특정 필드마다 딱 1개의 값을 생성자 파라미터로 받고, 이 값을 단순히 필드에 어사인해주는 생성자를 생성한다는 것이다. 1. @AllArgsConstructor: 모든 필드를 초기화하는 생성자를 자동으로 ..
Spring Bean
·
Spring Boot
🎈 싱글톤수많은 디자인 패턴 중 하나로, 클래스는 생성자가 여러번 호출되더라도 실제로 생성되는 객체는 하나이며 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 싱글톤 패턴을 사용하는 가장 큰 두 가지 이유 1. 요청할 때마다 새로운 객체를 생성하게 된다면 메모리 낭비가 심하기 때문에 대규모 트래픽이 요구되는 환경2. 특정 메서드를 통해 프로그램 내 어디서든 동일한 객체를 사용할 수 있기 때문에 다양한 기능을 담당하는 객체들이 모두 참여하는 계층형 구조단점1. Private 생성자로 인해 생성자 호출 불가로 상속 불가 및 테스트 불편함2. 클래스 로더에 싱글톤 여부 의존(예를들어, 1 어플리케이션 : N 클래스 로더 시 싱글톤 불가능)스프링 컨테이너는 싱글톤 패턴을 적용하지 않..
8080 사용 중일 때 프로세스 죽이기
·
Spring Boot
이건 내가 프로젝트를 진행했을 때  8080 포트가 이미 사용 중이라는 오류 메세지가 많이 떴던 기억이 있는데, 강의를 들으면서 그때 기억이 나서 다음에 내가 보려고 적는 것! 프로젝트를 진행하면서 서버를 분명 내렸는데, 아래 사진과 같이 8080 포트가 사용 중이라고 나오는 경우가 자주 발생했다. 그때 내가 사용한 방법은 두가지가 있는데, 첫번째로는 포트를 죽이는 것이고 두번째로는 포트번호를 바꿔서 사용했다. 둘 중에 뭐가 더 나은 방법인지는 모르겠으나 일단은 기록해본다. "web server failed to start. port 8080 was already in use"  1. lsof -n -i4tcp:8080  lsof -n -i4tcp:8080 명령어를 사용하여 포트가 사용 중인 PID를 찾..