목록웹 프로그래밍/Spring Boot (11)
코딩하는 문과생
프로젝트 투입 전 약간의 시간이 있어, 스프링을 전체적으로 정리중에 있다. 그중 스프링 검증과 예외처리에 대해 한번의 정리가 필요한 것 같아 그 내용을 정리해보려고 한다. 원론적인 이야기는 배제하고, 실무적으로 필요한 것만 정리한 내용이다. [Spring AOP] Spring은 공통 관심사와 비즈니스 로직을 분리할 수 있도록 AOP기능을 제공한다. 즉, 비즈니스 로직에 모든 것을 담으려하지 않고, 예외처리나 로깅 등은 공통 관심사로 뽑아내어 로직을 만들어 핵심 비즈니스 변경 시 영향도를 최대한 줄이고자 한다. [포인트 컷과 어드바이스] 조인 포인트(Join point) Advice가 적용될 수 있는 위치. AOP를 적용할 수 있는 모든 지점. 스프링 AOP는 프록시 방식을 사용하기 때문에 조인 포인트는 ..
개인 프로젝트에 알림기능을 구현을 위해 스프링JPA를 활용하기로 결정했다. [JPA, Hibernate, Spring Data Jpa] - JPA JPA는 기술명세다. Java Persistence API의 약자로, 자바 어플리케이션에서 관계형 DB를 사용하는 방식을 정의한 인터페이스다. 여기서 중요한 점은 JPA는 말 그대로 특정 기능을 하는 라이브러리가 아닌 인터페이스라는 점이다. ex. JPA의 EntityManager : 말그대로 인터페이스다. package javax.persistence; import ... public interface EntityManager { public void persist(Object entity); public T merge(T entity); public voi..
※ 해당 글은 튜토리얼이 아닌 헷갈리거나 중요한 개념 위주로 정리한 글입니다. [Nginx를 통한 무중단배포] [Nginx와 기존 프로젝트 연결] 1. EC2내 엔진엑스 설치 $ sudo amazon-linux-extras install nginx1 $ sudo service nginx start 2. EC2의 보안그룹 내 포트번호 80 추가 3. 구글 로그인 및 네이버 로그인의 기존 도메인에 포트번호80 추가 4. nginx와 스프링 부트(기존프로젝트) 연동 - 프록시와 관련된 설정 추가 후 nginx 재기동 $ sudo vim /etc/nginx/nginx.conf location / { proxy_pass http://localhost:8080; proxy_set_header X-Real-IP $r..
※ 해당 글은 튜토리얼이 아닌 헷갈리거나 중요한 개념 위주로 정리한 글입니다. [CI - 지속적 통합] CI: 지속적 통합, 개발한 코드가 버전관리 시스템(SVN, GIT)에 push가 되면 자동으로 테스트, 빌드가 이루어져 안정적인 배포파일을 만드는 과정 CD: 지속적 배포, 빌드파일을 자동으로 운영 서버에 무중단 배포까지 진행하는 과정 [CI의 4대규칙] 누구든 현재 소스에 접근할 수 있는 단일지점을 유지할 것 누구든 시스템을 빌드하는 단일 명령어 사용할 수 있게 할 것 단일 명령어로 건전한 테스트 실행할 수 있게 할 것 누구나 현재 실행파일이 완전한 실행파일이게 확신하게 할 것 [Travis CI] : CI툴, 깃허브와 연동되어 사용된다. - 프로젝트 전체 흐름 * 빌드(2, 3, 4)는 Travi..