배포 썸네일형 리스트형 Swagger을 통한 문서자동화 기능 사용 Swagger API를 통해 API 명세서를 편리하게 관리 할 수 있음 아래 예시는 Swagger doc을 이용해서 Swagger API 관리를 해보았다 Swagger를 적용하면 아래 그림과 같이 API 명세서를 만들 수 있고, JSON 데이터로 묶어서 api 정보를 관리 할 수 있다. 적용방법 1. gradle에 의존성 주입 dependencies { implementation 'org.springdoc:springdoc-openapi-ui:1.7.0' } 2. application.yml 에 추가 springdoc: swagger-ui: path: /swagger-ui.html groups-order: DESC operationsSorter: method disable-swagger-default-u.. 더보기 AWS EC2 (Elastic Compute Cloud) 배포하기 서버에 배포하는 방법은 정말 여러가지가 있습니다. 저는 그 많은 방법 중 EC2에 배포하는 방법 그리고 로컬에서 터미널을 이용한 접근에 대해 설명하겠습니다. EC2 인스턴스 생성 EC2를 만드는 방법은 스파르타 강의 혹은 구글링을 통해서 쉽게 알 수 있으니 넘어가겠습니다. EC2 터미널 접속 저는 윈도우 유저라 윈도우에서 터미널을 통한 접속 방법에 대해 설명하겠습니다. 맥은 iTerm 이 있으니 쉽게 할 수 있다 생각합니다. 윈도우에서 터미널을 통한 접속이 굉장히 어렵기 때문에 글 하나 공유드립니다. 저도 아래 글을 보고 접속에 성공했습니다. https://wookim789.tistory.com/34 윈도우 터미널을 이용해 EC2 접속하기 (5) 자 지난 글에서 EC2 인스턴스를 띄워 보았다. 이제 내 .. 더보기 [암호화] JasyptConfig 설정 application의 db 정보들이나 token의 secret key 같은 민감한 정보들은 직접적으로 코드에 적어놓으면 외부 유출의 우려가 있음 그렇기 때문에 Jasypt 을 이용해서 암호화 한 뒤, ENC(암호화 된 값) 처리를 해서 코드에 적어놓고 이를 복호화 하기 위한 값은 외부 환경 변수를 추가하여 사용하면 보안 수준을 높일 수 있음 아래 사이트에서 암호화를 하려는 db 정보 (1) url, username, password를 입력 입력한 secret key로 암호화도하고 복호화도 할 수 있는 2way로 선택해야함 https://www.devglan.com/online-tools/jasypt-online-encryption-decryption Programming Blog Article Feed.. 더보기 [Spring Data JPA] 사용법 환경 설정 1) h2 DB 2) 스프링 데이터 JPA 설정 #application.yml spring : datasource: #연결할 디비의 이름 url: jdbc:h2:tcp://localhost/~/datajpa username: sa password: driver-class-name : org.h2.Driver #디비 종류 jpa : #jpa 종류 hibernate: ddl-auto : create #app 로딩 시점에 테이블 다 드랍하고 새로시작, 끝나도 그대로 남아있음 properties: hibernate : #show_sql : true #콘솔에 로그가 나옴 format_sql : true #이쁘게 해줌 logging.level: org.hibernate.SQL: debug #콘솔에 남기는.. 더보기 application.yml 관리 전략 복잡한 application.yml 내 개발 환경 설정 사항을 사용 db에 따라, dev와 local로 나눠 관리하기 편하게 진행 원본 application.yml 설정을 보면 local 환경에서는 inmemory 방식의 h2 db를 통해서 개발을 진행했었음 추가적으로 aws rds mysql db를 만들어 db 서버를 구축하여 dev 환경으로 설정하려함 spring: h2: console: enabled: true datasource: #url: jdbc:h2:mem:db;MODE=MYSQL #username: sa #password: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://db-mysql.cyg0hh5az4ou.eu-west-1... 더보기 AWS RDS (Relational Database Service) 만약 데이터베이스(DB)에 SSH로 접속이 불가능할 때의 단점 1. 보안 문제: SSH는 데이터를 암호화하고 안전하게 전송하는 데 사용되므로, SSH 없이 DB에 직접 접속하면 보안에 취약할 수 있습니다. SSH를 사용하지 않고 DB에 직접 접속하면, 악의적인 사용자가 데이터베이스에 액세스하여 중요한 정보를 탈취하거나 손상시킬 위험이 있습니다. 2. 원격 접속 문제: SSH 없이 DB에 직접 접속하려면, DB 서버에 직접 접근해야 합니다. 이 경우, 외부 네트워크에서 접근이 불가능한 경우가 많기 때문에, 외부에서 접속하는 것이 불가능하거나 매우 어려울 수 있습니다. 3. 추가 구성 문제: SSH를 사용하지 않고 DB에 접속하려면, DB 서버에 추가 구성이 필요할 수 있습니다. 예를 들어, 외부에서 접근 .. 더보기 항해 99 WIL (Weekly I Learned) 4주차 이번주차 목요일부터 미니 프로젝트를 시작했다. 처음 협업이여서 서로 어떤것을 구현하고 결과물을 어떻게 연결시킬지 고민했다. 또한 백엔드 서버를 설계할 때, 협업을 효율적으로 하기 위해 Git을 활용하기로 하였다. 이제 실전 프로젝트를 기반으로 항해가 진행되는 만큼 배운것을 다시한번 곱씹어 보는 과정을 꼭 동반해서 개발 실력을 한층 더 키우고 싶다. CORS (Cross Origin Resource Sharing) 다른 Origin으로 요청을 보내기 위해 지켜야하는 브라우저의 정책으로 교차 출처 자원 공유라고 부름원래대로라면 SOP에 의해 막히게 될 요청을 풀어주는 정책임 즉, 서버는 평소처럼 요청이 오면 응답을 해줄 뿐이고, 브라우저가 자신이 보낸 요청 및 서버로부터 받은 응답의 데이터가 CORS 정책을.. 더보기 객체 생성 디자인 패턴 (점층적 생성자 패턴, 정적 팩토리 메서드, 빌더 패턴) 객체 생성에 사용되는 다양한 디자인 패턴에 대해서 알아보자. RequestDto 를 사용 1. 점층적 생성자를 통한 객체 생성 객체를 생성할 때, 아래와 같이 new 키워드와 생성자를 통해 객체를 생성할 수 있음 자바를 처음 배우는 사람에게 익숙한 이 디자인 패턴은 점층적 생성자 패턴 임 하지만 이 방식은 매개 변수가 늘어나면서 코드 작성이 어렵고 가독성이 떨어져 혼동하기 쉽다는 단점이 있음 public class NutritionFact { // 필수 인자 private final int servingSize; private final int servings; // 선택 인자 private final int calories; private final int fat; private final int so.. 더보기 이전 1 다음