본문 바로가기

SpringBoot Server32

IntelliJ에서 Lombok 적용 오류 해결하기 플러그인 설치도 하고, Spring Initializr에서 Lombok 의존성을 추가해도임포트만 되고 정작 서버 실행하면 에러가 나곤 했는데 간단한 설정으로 해결할 수 있었습니다~!   인텔리제이 설정 > 컴파일러 > 어노테이션 프로세서 > 어노테이션 처리 활성화 > 프로젝트 클래스 경로에서 프로세서 가져오기 선택! Lombok은 자바 프로그래밍 언어에서 코드 작성을 간소화하고 반복적인 작업을 자동으로 처리하기 위한 라이브러리입니다. 이 라이브러리는 주로 어노테이션을 활용하여 클래스, 필드, 메서드에 대한 코드를 자동으로 생성함으로써 코드의 가독성을 높이고 개발자의 생산성을 향상시킵니다 @AllArgsConstructor - 모든 필드를 인자로 받는 생성자를 생성@NoArgsConstructor - 파라.. 2025. 1. 1.
JWT Token을 이용한 인증 설정과 비밀번호 암호화 프로세스 JWT(Json Web Token)이란?JSON 형식으로 이루어진 클라이언트와 서버 간의 인증 및 인가를 위한 표준화된 방법주로 웹 애플리케이션에서 사용되며, 사용자 인증 정보를 안전하게 전송하기 위해 설계됨 인터넷 사이트에서 콘서트 티켓을 구입했다고 생각해봅시다.콘서트홀에 입장할때마다 직원에게 인터넷 사이트 아이디와 비밀번호, 내가 누구인지를 매번 확인해주려면 직원도 나도 힘들거에요.그래서 간단하게 앱이나 실물로 받은 티켓을 보여주고 입장하죠.JWT도 이와 비슷합니다.JWT의 구조헤더 (Header)토큰의 유형과 서명 알고리즘을 포함합니다.예를 들어, JWT의 경우 {"alg": "HS256", "typ": "JWT"}와 같은 JSON 객체로 표현됩니다.페이로드 (Payload)사용자의 인증 및 인가 .. 2024. 12. 30.
RESTful API 설계의 핵심 요소: 컨트롤러, 서비스, DAO, DTO 클래스 알아보기 클라이언트가 서버에 요청한 내용을 하나의 클래스에서 모두 처리한다고 생각해보자.어떤 HTTP 요청이 들어왔는지 확인해서, DB에서 어떻게 가져와야할지, 가져온 데이터를 어떻게 처리할지, 그리고 어떻게 보내줄지를 모두 한 클래스에서 작성하게 된다면...간단한 메서드 정도는 문제 없을지 몰라도메서드 로직이 복잡해지고, 유지보수 시 수정해야할 코드가 생기게 되면 막막할것이다. 따라서 클래스별로 역할을 구분할 필요가 있다.그럼 어떻게 역할 구분을 해야할까? 사용자 요청: 사용자가 웹 애플리케이션에 요청을 보냅니다.Controller:요청을 받아 해당 메서드를 호출합니다.필요한 데이터를 DTO 형태로 Service에 전달합니다.Service:Controller로부터 받은 DTO를 기반으로 비즈니스 로직을 실행합.. 2024. 12. 24.
JDBC 예제 - 유저관리 APl DELETE https://maeilcoding.tistory.com/117 예제 - 유저관리 API GET Allhttps://maeilcoding.tistory.com/116 예제 - 유저관리 API GET idhttps://maeilcoding.tistory.com/115 Controller, DAO, DTO 알아보기 // 예제 - 유저관리 API POSTDAO (Data Access Object) 란?데이터베이스나 기타 영속성 메커니즘에maeilcoding.tistory.com마지막으로 유저 삭제 API를 만들어보겠습니다. 유저 이름과 이메일을 관리하는 API만들기 예제 // todo 5 deletUser1. 명세서 확인2. Postman에 리퀘스트 작성3. Controller에서 deletUser  메서드 .. 2024. 12. 22.
JDBC 예제 - 유저관리 APl PUT https://maeilcoding.tistory.com/117 예제 - 유저관리 API GET Allhttps://maeilcoding.tistory.com/116 예제 - 유저관리 API GET idhttps://maeilcoding.tistory.com/115 Controller, DAO, DTO 알아보기 // 예제 - 유저관리 API POSTDAO (Data Access Object) 란?데이터베이스나 기타 영속성 메커니즘에maeilcoding.tistory.com 유저 정보를 수정하는 API를 만들어봅시다.  유저 이름과 이메일을 관리하는 API만들기 예제 // todo 4 updateUserInfo1. 명세서 확인2. Postman에 리퀘스트 작성3. Controller에서 updateUse.. 2024. 12. 22.
JDBC 예제 - 유저관리 API GET All https://maeilcoding.tistory.com/116 예제 - 유저관리 API GET idhttps://maeilcoding.tistory.com/115 Controller, DAO, DTO 알아보기 // 예제 - 유저관리 API POSTDAO (Data Access Object) 란?데이터베이스나 기타 영속성 메커니즘에 접근하는 객체 목적: 데이터 접근 로직과 비즈니스maeilcoding.tistory.com이번엔 전체 사용자 조회 API를 만들어봅시다. 유저 이름과 이메일을 관리하는 API만들기 예제 // todo 3 getAllUserInfo1. 명세서 확인2. Postman에 리퀘스트 작성3. Controller에서 getAllUsersInfo 메서드 작성 시작//todo 3 getA.. 2024. 12. 22.
JDBC 예제 - 유저관리 API GET id https://maeilcoding.tistory.com/115 Controller, DAO, DTO 알아보기 // 예제 - 유저관리 API POSTDAO (Data Access Object) 란?데이터베이스나 기타 영속성 메커니즘에 접근하는 객체 목적: 데이터 접근 로직과 비즈니스 로직을 분리기능: CRUD(Create, Read, Update, Delete) 작업 수행사용이유:   - 코maeilcoding.tistory.com저번 글에서 작성한 Post 리퀘스트가 성공적으로 response 되는지 확인해봅시다.  유저 이름과 이메일을 관리하는 API만들기 예제 // todo 2 getUserById1. 명세서 확인2. Postman에 리퀘스트 작성 * POST, PUT, 그리고 PATCH 메서드는.. 2024. 12. 22.
DAO, DTO 알아보기 // 예제 - 유저관리 API POST DAO (Data Access Object) 란?데이터베이스나 기타 영속성 메커니즘에 접근하는 객체 목적: 데이터 접근 로직과 비즈니스 로직을 분리기능: CRUD(Create, Read, Update, Delete) 작업 수행사용이유:   - 코드 재사용성 향상  - 데이터 접근 방식 변경 시 유연성 제공 DTO (Data Transfer Object)프로세스 간 데이터를 전달하는 객체목적: 데이터 전송 최적화특징: - 비즈니스 로직 없이 데이터만 포함- 일반적으로 단순한 getter/setter 메서드만 가짐장점:- 네트워크 호출 횟수 감소- 데이터 캡슐화* DAO와 DTO의 관계- DAO는 데이터베이스와 상호작용하여 데이터를 가져오고, 이를 DTO에 담아 비즈니스 계층으로 전달한다.- DTO는 여러 .. 2024. 12. 22.
RDS와 Java Server연결하기 - EC2 터널링으로 안전한 데이터베이스 접근 이제 내 로컬컴퓨터에서만 돌려보던 서버 예행연습이 끝났으니DB에 연결해보도록 합시다. DB때도 ec2를 거쳐가도록 터널링했었죠왜 터널링을 해야하는가 마찬가지입니다. 서버를 배포하기 전까진  보안과 디버깅을 위해 ec2서버에 터널링을 해줄거에요. Java에서는 어떻게 터널링을 하는가~? 우선 resources 폴더의 application.properties을 yml로 확장자를 변경해주자.yml == 설정파일!! 그리고 해당 yml에 아래 코드 작성spring: datasource: url: jdbc:mysql://localhost:3307/***   포트 충돌을 피하기위해 DB가 쓰고있는 3306포트 대신  3307포트로 접속이제 자바에서의 데이터 베이스 접속 설정 준비 완료 ec2 연결은 Putt.. 2024. 12. 19.