본문 바로가기

개발일지

개발일지 24 - Validation Validation 이란 예외 발생에 의한 오류를 예방하기 위해 거치는 데이터 검증과정. Spring이 제공하는 Bean Validation을 사용할 수 있다. 사용법 build.gradle 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' 어노테이션 추가 package com.sparta.springauth.dto; import jakarta.validation.constraints.*; import lombok.Getter; @Getter public class ProductRequestDto { @NotBlank//null 불가 private String name; @Email//e-mail 형식 pri.. 더보기
개발일지 23 - @PathVariable, @RequestBody 최근 자주 사용하고 있는 클라이언트의 http요청에서 전달된 데이터를 받아오는 역할을 하는 @PathVariable, @RequestBody 두가지 어노테이션에 대해 알아보았다. @PathVariable // localhost:8080/api/board/1 요청 URI @GetMapping(/api/board/{id}) public String getBoard(@PathVariable Long id){ ... } 위와 같이 요청 URI에 파라미터를 담아 보낸다. @ReqeustBody { "name" : "Yoon", "password" : "1234" } 요청을 보낼 때 Body에 JSON형태의 데이터를 담아보낸다. // localhost:8080/api/board 요청 URI @PostMapping(.. 더보기
개발일지 22 - 현재까지 자주 사용하고 있는 어노테이션 스프링에 대해 배우기 시작하고 프로젝트를 진행하면서 다양한 어노테이션들을 사용하게 되었다. 그래서 현재까지 자주 사용되는 어노테이션들을 정리하고자 한다. @Override 해당 메서드가 재정의된 메서드임을 알리기 위함 @Getter, @Setter 자동으로 get메서드와 set메서드 생성 @Component, @bean, @Controller,@Repository,@Service,@Configuration 등 bean등록을 위한 어노테이션들, 쓰임새와 사용방법이 조금씩 차이가 있다. @RequestMapping 클라이언트로부터 온 요청을 메서드와 매핑하기 위함 @PostMapping, GetMapping, PutMapping, DeleteMapping 등 RequestMapping에 의해 매핑되는 메서드.. 더보기
개발일지 21 - JPA JPA란? JPA( Java Persistence API)는 자바 ORM(Object-Relational Mapping) 대한 표준 명세(인터페이스 모음)이며 객체와 데이터베이스 간의 매핑을 관리하고, 쿼리문의 작성 없이 데이터베이스 작업을 수행할 수 있게 해 준다. 이를 통해 CRUD 작업을 더욱 쉽게 할 수 있도록 지원해 주고, 코드의 변경이나 유지보수도 용이해진다. JPA 연결 spring.datasource.url: jdbc:mysql://localhost:3306/mydatabase spring.datasource.username: root spring.datasource.password: password spring.jpa.database: mysql // 데이터베이스 spring.jpa.da.. 더보기
개발일지 20 - Spring Bean Spring Bean Spring 에서 Bean이란 Spring이 관리하는 객체를 뜻하며 Spring IoC컨테이너에 Bean을 등록해 사용한다. Bean의 등록 방법 Bean으로 등록하고자하는 클래스 위에 @Component 를 설정해준다. @Component public class 클래스 이름 {...} Spring 서버가 뜰 때 @ComponentScan에 설정해 준 packages 위치와 하위 packages들을 확인하여 @Component가 설정된 클래스들을 Bean으로 들록해준다. Bean의 사용 방법 @Autowired를 필드위, 메서드 위에 적어준다. 반드시 Spring IoC 컨테이너에 의해 관리되는 클래스에서만 사용이 가능하다. ApplicationContext를 이용한 Bean을 수동.. 더보기
개발일지 19 - SOLID 원칙 SOLID 원칙 객체 지향 설계에 있어 이해하기 쉽고, 유연하며 유지보수 및 확장이 편하게 이루어질 수 있게 지켜야 할 5가지 원칙에 대해 말한다. SRP: 단일 책임 원칙(Single Responsibility Principle) 하나의 클래스는 하나의 책임(기능)만 가져야 한다는 원칙이다. 예를 들자면 모든 공구가 합쳐져 있는 다용도칼과 각자의 공구들을 생각할 수 있다. 사용하는데 있어서는 다용도칼이 유용할 수 있으나 코드의 경우에는 다를 수 있다. 단일 책임 원칙을 지킴으로써 코드의 가독성을 늘리고, 유지보수에 있어 용이함을 얻을 수 있다. OCP: 개방 - 폐쇄 원칙(Open/Closed Principle) 확장에는 열려있으나 변경에는 닫혀있어야 한다는 원칙이다. 변화하는 부분에 추상클래스와 상속.. 더보기
개발일지 18 - 3계층 아키텍쳐 3계층 아키텍쳐 스프링 프로젝트를 진행하며 구조를 3계층으로 나누어 개발을 진행해보았다. 스프링의 3계층은 Presentation Layer, Business Layer, Data Access Layer 로 나뉜다. Presentation Layer 클라이언트가 보낸 요청을 받아주는 역할을 한다. @Controller 어노테이션을 사용한 Controller 클래스가 요청을 판단하여 Service 클래스로 넘겨준다. Business Layer와 Data Access Layer 에서 발생하는 예외를 처리하기도 한다. Business Layer Controller에서 넘겨받은 요청을 실제로 수행하는 역할을 한다. Presentation Layer 와 Data Access Layer 사이를 연결하는 역할을 한다.. 더보기
개발일지 17 - 접근제어자 접근제어자 자바에서는 접근제어자 클래스나 멤버변수, 메서드에서 사용되며, 접근제어자를 이용해 다른 클래스에서 이용할 수 있는지를 정해 데이터의 변경을 막을 수 있다. public 접근에 제한이 없어 모든 클래스에서 접근이 가능하다. 클래스, 멤버변수, 메서드 모두 사용이 가능하다. default 접근제어자를 생략했을 경우 default 가 사용된며, 같은 패키지 안의 클래스만 접근이 가능하다. 클래스, 멤버변수, 메서드 모두 사용이 가능하다. protected 같은 패키지안의 클래스와 다른 패키지의 해당 클래스를 상속받는 자식클래스에서만 접근이 가능하다. 멤버변수와 메서드 에만 사용할 수 있다. private 같은 클래스 안에서만 접근이 가능하다. 멤버변수와 메서드 에만 사용할 수 있다. 더보기