백엔드 45

ApplicationContext 정리 - 스프링 핵심원리 기본편

//스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext 는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig 를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것 이 클래스는 ApplicationContext 인터페이스의 구현체이다. 스프링 컨테이너의 생성 과정 1. 스프링 컨테이너 생성 2. 스프링 빈 등록 3. 스프링 빈 의존관계 설정 - ..

백엔드/스프링 2022.03.14

빈 생명주기 콜백 - 스프링 핵심원리 기본편

빈 생명주기 콜백 시작 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화와 종료가 필요함. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정하자. 이 NetworkClient는 애플리케이션 시작 시점에 connect()를 호출해서 연결을 맺어두어야 하고, 애플리케이션이 종료되면 disconnect()를 호출해서 연결을 끊어야 한다. package hello.core.lifecycle; public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호..

백엔드/스프링 2022.03.08

[JPA] 연관관계 매핑 - @OneToMany @ManyToOne

https://jyami.tistory.com/21 https://dublin-java.tistory.com/51 https://ict-nroo.tistory.com/122 [JPA] 양방향 연관관계 양방향 연관관계와 연관관계의 주인 Team을 통해서도 getMemberList()로 특정 팀에 속한 멤버 리스트를 가져오고 싶다. 객체 설계는 위와 같이 Member에서는 Team을 가지고 있고, Team에서는 Members를 가지 ict-nroo.tistory.com JPA - One To Many 단방향의 문제점 주변에서 One To Many 단방향에 관해서 물어볼 때마다 저는 항상 이렇게 대답했습니다. 김영한 님의 인프런 강의에서 봤는데~ One To Many 단방향은 좋지 않다. 차라리 양방향을 해라..

백엔드/스프링 2022.02.22

AssertJ 필수 부분 정리

https://pjh3749.tistory.com/241 [AssertJ] JUnit과 같이 쓰기 좋은 AssertJ 필수 부분 정리 AssertJ가 core document를 새로운 github.io로 이전했네요 :) . 본 글은 AssertJ 공식 문서를 핵심 챕터를 선정하여 번역하며 정리한 글 입니다. http://joel-costigliola.github.io/assertj/assertj-core.html A.. pjh3749.tistory.com 출처: 위의 글을 보고 AssertJ의 필수 부분을 정리해보았습니다. Filtering assertions - iterables나 arrays에 적용되는 filtering List list = new ArrayList(); Human park = new..

백엔드/스프링 2022.02.20

Spring boot JPA / ModelMapper, Entity -> DTO 변환

Post에 대한 간단한 컨트롤러 구현 @Controller class PostRestController { @Autowired private IPostService postService; @Autowired private IUserService userService; @Autowired private ModelMapper modelMapper; @GetMapping @ResponseBody public List getPosts(...) { //... List posts = postService.getPostsList(page, size, sortDir, sort); return posts.stream() .map(this::convertToDto) .collect(Collectors.toList()); ..

백엔드/스프링 2022.02.02

Swagger UI 3.0 적용하여 편리하게 API 명세서 작성하기

[Swagger] 개발자들의 API 문서화를 쉽게 할 수 있도록 도와주며, 파라미터를 넣어서 실제로 어떤 응답이 오는지 테스트도 할 수 있습니다. 또한, 협업하는 클라이언트 개발자들에게도 Swagger 만 전달해주면 API Path 와 Request, Response 값 및 제약 등을 한번에 알려줄 수 있습니다. 의존성 추가(build.gradle) //Swagger UI implementation 'io.springfox:springfox-boot-starter:3.0.0' SwaggerConfig 추가 @Configuration public class SwaggerConfig { private static final String API_NAME = "Post, Letter, Category API";..

백엔드/스프링 2022.01.29