목록spring (6)
Partially Committed
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dOI0Co/btsrwliV99R/gsJVZq6sv1VYQo0CoItoSK/img.png)
|| Couphone, 쿠폰을 폰 안에! 백엔드 개발자가 되기로 마음먹은 뒤로 처음으로 참여한 프로젝트이다. 나는 Spring 경험이 아주 적었고 본 프로젝트 기간이 1개월 반 정도로 짧았기 때문에 전체적인 완성도가 많이 떨어지는 것 같아 많이 아쉬웠다. 처음으로 프로젝트에 참여하다 보니 모든 부분에서 상당히 막막한 감정을 느낄 수 밖에 없었는데, 운이 좋게도 이것저것 직접 구현해볼 수 있게 되어서 개인적으로는 얻어가는 점이 꽤 많았다고 생각한다. 여튼, 처음으로 프로젝트에 참여하며 느꼈던 막막함과 해결 과정을 되새기며 " 처음으로 구현해보는 " 이라는 시리즈로 블로그에 삽질한 기록을 남겨볼 생각이다. 첫 번째 주제는 처음으로 구현해보는 access token, refresh token 발급 로직이다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/L99GC/btsffuzxFyo/Qvsllf73Bx6ewYbCQClMnk/img.png)
뭔가 명확하지 않았던 내용에 대해서 정리해보자.. 1. WEB-INF 폴더란? WEB-INF 폴더는 브라우저에서 URL 을 통해 직접 접근할 수 없고(하려고 하면 404 ERROR 발생) 서버 내에서만 접근 가능하므로 Web 정보에 관한 중요한 파일들은 WEB-INF(Web Information) 폴더에 넣는다. 그러므로 보안성을 강화할 수 있다는 것이 장점이지만, 브라우저의 직접 접근이 제한되므로 Controller 을 반드시 거쳐서 이동해야만 한다. 일반적으로 jsp 파일은 WEB-INF 폴더에 넣고, css, img, jQuery 와 같은 정적 파일은 WEB-INF 폴더에 넣지 않는다고 한다. jsp 파일을 WEB-INF 폴더에 넣어서 관리하는 이유가 무엇일까? 브라우저를 통해서 jsp 파일에 직접..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/4I7VW/btrWCgTxFej/jkUXaWHkQbYW5lqpt20kI1/img.png)
빈 생명주기 콜백 애플리케이션의 실행 이전에 데이터베이스 커넥션 풀이나 네트워크 소켓과 같이 시작 지점에 필요한 연결을 미리 해두고 애플리케이션 종료 시점에 안전하게 종료하기 위해서는 객체의 초기화 및 종료 작업이 필요하다. 이는 Spring 에서 어떻게 구현할 수 있을까? 스프링 빈은 객체를 생성하고 의존관계를 모두 다 주입한 다음에서야 데이터를 사용할 수 있다. 그래서 초기화 작업은 의존관계 주입이 모두 끝난 다음에 호출해야 할텐데, 이 시점을 어떻게 하면 정확하게 알 수 있을까? 이를 위해 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 기능을 제공한다. 그리고 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 주기 때문에 이를 이용하여 안전하게 종료 작업을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b6Pzhg/btrWjl8qVeZ/cJrxXUxVFkF3eKyUJFB52K/img.png)
다양한 의존관계 주입 다양한 의존 관계 주입 방법 - 생성자 주입 : 생성자를 통해 의존 관계를 주입 받는 것으로, 생성자 호출 시점에 딱 한번만 호출 되는 것이 보장되는 것이 특징이다. 불변, 필수 의존관계에 사용한다. - 수정자 주입(Setter 주입) - 필드 주입 - 일반 메서드 주입 # 생성자 주입 @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberReposit..