일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- ubuntu passwd
- 스키마 설계
- N:N
- http 응답코드
- O(log n)
- git 설정
- 스키마 디자인
- 탐욕 알고리즘
- RestControllerAdvice
- 코드스테이츠
- Spring
- Spring 예외처리
- ubuntu
- git workflow
- 리눅스 사용권한
- ubuntu 패스워드
- 배열 탐색
- set-version
- JAVA 재귀함수
- REST HTTP API
- custom exception
- 함수형 인터페이스
- Spring MVC
- file i/o
- root passwd
- Java
- mapstruct
- char to int
- AOP
- 자료구조
- Today
- Total
목록Spring Framework (11)
개발소설
DDD(Domain Driven Design) 도메인 위주의 설계 기법 도메인(Domain) 비즈니스적인 어떤 업무 영역 비즈니스 업무 영역을 의미하는것은 도메인 지식이라고 부른다. 도메인 지식들을 서비스 계층에서 비즈니스 로직으로 구현해야 한다. 도메인 지식이 많을 수록 퀄리티높은 애플리케이션을 만들 가능성이 높다. 엔티티 클래스 설계 데이터베이스 테이블 간의 관계는 외래키를 통해 맺어지고 클래스끼리 관계는 객체의 참조를 통해 관계가 맺어진다. 애그리거트(Aggregate) 비슷한 업무의 하위 수준 도메인들의 묶음 애그리거트 루트(Aggregate Root) 애그리거트 내의 대표 도메인 각 애그리거트 내의 도메인들 중에서 다른 모든 도메인들과 직간접적으로 연관이 되어 있는 도메인이 애그리거트 루트가 된..
JDBC(Java Database Connectivity) Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트하거나 반대로 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 해주는 Java에서 제공하는 표준 API이다. JDBC의 동작흐름 JAVA 애플리케이션 -> JDBC API -> JDBC 드라이버 -> 데이터 베이스 Java 애플리케이션에서 JDBC API를 이용해 적절한 데이터베이스 드라이버를 로딩한 후, 데이터베이스와 인터랙션 한다 JDBC API 사용 흐름 JDBC 드라이버 로딩 Connection 객체 생성 Statement 객체 생성 Query 실행 ResultSet 객체로부터 데이터 조회 ResultSet 객체 Close, ..

체크 예외(Checked Exception)는 예외를 잡아서(catch) 체크한 후에 해당 예외를 복구하든가 아니면 회피를 하든가 등의 어떤 구체적인 처리를 해야 하는 예외이다. ClassNotFoundException 등 언체크 예외(Unchecked Exception)는 예외를 잡아서(catch) 해당 예외에 대한 어떤 처리를 할 필요가 없는 예외를 의미한다. NullPointerException, ArrayIndexOutOfBoundsException 등 RuntimeException을 상속한 예외는 모두 언체크 예외(Unchked Exception)이다. 개발자가 의도적으로 예외를 던질 수(throw) 있는 상황 백엔드 서버와 외부 시스템과의 연동에서 발생하는 에러 처리 시스템 내부에서 조회하려는..

@ExceptionHandler를 이용한 예외 처리 @ExceptionHandler를 이용한 Controller 레벨에서의 예외 처리 @PostMapping public ResponseEntity postMember(@Valid @RequestBody MemberPostDto memberDto) { Member member = mapper.memberPostDtoToMember(memberDto); Member response = memberService.createMember(member); return new ResponseEntity(mapper.memberToMemberResponseDto(response), HttpStatus.CREATED); } import org.springframework..

서비스(Service) 계층 애플리케이션에 있어 Service는 도메인 업무 영역을 구현하는 비즈니스 로직을 처리하는 것을 의미한다. Controller 클래스에 @RestController 애너테이션을 추가하면 Spring Bean으로 등록된다. Service 클래스에 @Service 애너테이션을 추가하면 Spring Bean으로 등록된다. 생성자 방식의 DI는 생성자가 하나일 경우에는 @Autowired 애너테이션을 추가하지 않아도 DI가 적용된다. 서비스 계층에서 데이터 액세스 계층과 연동하면서 비즈니스 로직을 처리하기 위해 필요한 데이터를 담는 역할을 하는 클래스를 도메인 엔티티(Entity) 클래스 Mapper DTO ↔ Entity 클래스를 서로 변환해주는 변환자 Mapper를 사용해서 DTO..
Data Transfer Object의 약자로 마틴 파울러(Martin Fowler)가 ‘Patterns of Enterprise Application Architecture’ 라는 책에서 처음 소개한 엔터프라이즈 애플리케이션 아키텍처 패턴의 하나 DTO는 주로 클라이언트에서 서버 쪽으로 전송하는 요청 데이터를 전달 받을 때, 서버에서 클라이언트 쪽으로 전송하는 응답 데이터를 전송하기 위한 용도로 사용 DTO가 필요한 이유 클라이언트의 Request Body를 하나의 객체로 모두 전달 받을 수 있기때문에 코드 자체가 간결 Request Body의 데이터 유효성(Validation) 검증이 단순해진다. JSON 형식의 Request Body를 전달 받기 위해서는 DTO 객체에 @RequestBody 애너테..

클라이언트의 요청을 직접적으로 전달 받는 계층인 API계층에 속하며 Handler 메서드를 통해 비즈니스로직을 처리후 응답 엔트리포인트(Entrypoint) package com.codestates; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Section3Week1Application { public static void main(String[] args) { SpringApplication.run(Section3Week1Application.class, args); }..

spring-webmvc : Spring의 모듈 중에서 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈 서블릿(Servlet) : 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일 서블릿 컨테이너(Servlet Container) : 서블릿들이 웹 애플리케이션으로 실행이 되도록 해준다. 대표적으로 아파치 톰캣(Apache Tomcat)이 있다. spring-webmvc 모듈이 Spring MVC Spring MVC는 웹 프레임워크의 한 종류이기 때문에 Spring MVC 프레임워크라고도 불린다. Spring MVC에서 M은 Model, V는 View, C는 Controller Model : 클라이언트에게 응답으로 돌려주는 작업의 처리 결과..