타임리프 - 스프링 통합과 폼 타임리프는 ${@myBean.doSomething()}처럼 스프링 빈 호출 지원 th:object, th:field, th:errors, th:errorclass 등 폼 관리 속성 지원 HTTP 요청 메시지 로깅을 보고 싶다면 properties에 logging.level.org.apache.coyote.http11=debug를 설정 입력 폼 처리 상품 등록 폼 상품명 가격 수량 판매 여부 판매 오픈 등록 지역 서울 상품 종류 BOOK 배송 방식 ==배송 방식 선택== FAST 상품 등록 취소 th:object : 커맨드 객체를 지정한다. 폼 태그에 인라인으로 지정하면 th:field="${item.itemName}"을 th:field="*{itemName}"와 같이 사용할..
타임리프 소개 https://www.thymeleaf.org/ 서버 사이드 HTML 렌더링 (SSR) : 백엔드 서버에서 HTML을 동적으로 렌더링하는 용도로 사용된다. 네츄럴 템플릿 : 순수 HTML을 최대한 유지하는 특징 (정적, 동적 둘다 사용 가능) 스프링 통합 지원 : 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원 타임리프 표현식 html 태그에 타임리프를 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:l..
jar 파일 만들기 IntelliJ - Gradle 버전 오른쪽 사이드바 Gradle 선택 - Tasks/bootJar 실행 build / libs에 jar파일이 자동 생성 된다. jar파일을 복사한 경로에 터미널 실행 시 정삭 동작하는 것을 확인할 수 있다. 실행하는데 오류가 있다면 JDK 버전과 프로젝트 버전이 맞는지 확인해보자.
SSL/TLS 적용 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html EPEL (Enterprise Linux) sudo yum update -y sudo wget -r --no-parent -A 'epel-release-*.rpm' https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/ sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm sudo yum-config-manager --enable epel* sudo yum repolist all 7 리포지토리 패키지 다..
무중단 배포 서비스를 유지하면서, 배포하는 방법 AWS - 블루 그린 무중단 배포 도커를 이용한 웹서비스 무중단 배포 (Nginx) Ngix의 여러 기능 중 리버스 프록시가 있다. 리버스 프록시 : 외부의 요청을 받아 백앤드 서버로 요청 전달하는 행위 가장 저렴하고 쉬운 편 L4 스위치를 이용한 무중단 배포 (고가의 장비로 거의 사용하지 않는다.) 무중단 배포 구조 - Nginx 사용자는 서비스 주소로 접속 (80 또는 443 포트) Nginx는 요청을 받아 스프링 부트로 요청 (8081포트로 가정) 8082는 Nginx와 연결된 상태가 아니기 때문에 요청받지 못한다. 1.1 버전으로 신규 배포가 필요하면, 연결되지 않은 8082포트로 배포 배포하는 동안에도 서비스는 중단되지 않는다. (8081을 바라보..
CI & CD CI (Continuous Integration) - 지속적 통합 CI를 통해 운영 서버에 무중단 배포까지 진행되는 과정을 CD (Continuous Deployment) - 지속적 배포라고 한다. CI,CD 를 이용하여 코드 병합, 배포를 자동화하여 생산성을 높일 수 있다. CI 4원칙 모든 소스코드가 실행되고 누구든 접근할 수 있는 단일 지점 유지 빌드 프로세스를 자동화해서 누구든 소스로부터 시스템을 빌드하는 단일 명령어 사용 가능하게 할 것 테스팅 자동화로 단일 명령어로 시스템에 대한 테스트 수트를 실행할 수 있게 할 것 누구나 실행파일을 얻으면 가장 완전한 실행 파일을 얻었다는 확신을 하게 할 것 Travis CI 연동 GitHub에서 제공하는 무료 CI 서비스 (젠킨스는 설치형으로..
EC2 프로젝트 Clone sudo yum install git (깃 설치) git --version 으로 버전 확인 mkdir ~/app && mkdir ~/app/step1 : git clone 으로 저장할 디렉토리 생성 cd ~/app/step1 : 생성한 디렉토리로 이동 git clone 깃헙 주소 cd 레포이름 , ll 을 통해 코드 확인 ./gradlew test 를 통해 테스트 검증 - permission denied 발생 시 chmod +x ./gradlew 를 통해 실행권한을 추가 부여 배포 스크립트 만들기 배포할 때마다 개발자가 명령어를 실행하는 것은 불편하다. 쉘 스크립트를 통해 자동으로 실행되도록 만든다. (쉘 스크립트는 .sh 확장자를 가진 파일) vim ~/app/step1/de..
서버 배포 방법 로컬 PC를 24시간 구동 호스팅 서비스(Cafe 24, 코리아 호스팅 등) 클라우드 서비스 (AWS, ZURE, GCP 등) 비용 측면에선 로컬PC나 호스팅 서비스가 유리 특정 시간에 트래픽이 몰리고, 유동적으로 사양을 늘려야 하는 상황이면 클라우드 서비스가 유리 클라우드란? 클라우드를 통해 서버, 스토리지, DB, 네트워크, 소프트웨어, 모니터링 등 컴퓨팅 서비스를 제공하는 것 AWS의 EC2는 서버 장비를 대여하는 것이지만, 실제로는 그 안의 로그, 모니터링, 네트워크 관리 등 자동 지원 IaaS (Infrastructure as a Service) - 아이아스 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해..