본문 바로가기
내일배움캠프TIL - ResponseEntity 개인과제를 통한 API 구현 중 클라이언트의 응답을 상태코드와 메세지 그리고 Response하는 data를 반환하기 위하여 ResponseEntity에 대해 알아 보고 적용을 시켰다. ResponseEntity는 Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스 public class HttpEntity { private final HttpHeaders headers; @Nullable private final T body; } public class RequestEntity extends HttpEntity public clas.. 2024. 2. 6.
프로그래머스java-시저 암호 문제설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 입출력 예 s n result "AB" 1 "BC" "z" 1 "a" "a B z" 4 "e F d" 소스코드 class Solution { public String solution(St.. 2024. 2. 5.
내일배움캠프TIL- 영속성 전이 엔티티의 관계에 대해 일대일 , 일대 다 , 다 대 일, 대 대 다를 배우게 되면서 이렇게 관계된 객체들을 쉽게 관리하고 처리를 하기 위해 영속성 전이라는 것을 알아보겠다. 영속성 전이 : CASCADE 영속성 전이 기능은 특정 엔티티를 영속 상태로 만들 때, 연관 엔티티도 영속 상태로 만들고 싶은 경우 사용한다. JPA 에선는 CASCADE 옵션으로 영속성 전이를 제공한다. 영속성 전이를 사용하면, 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장할 수 있다는 것이다. 예를들어 음식 테이블 과 고객 테이블이 N : 1 양방향 관계라고 가정한다면 Food 엔티티 @Entity @Table(name = "food") public class Food { @Id @GeneratedValue(strategy =.. 2024. 1. 30.
프로그래머스Java- 문자열 내림차순으로 배치하기 문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한사항 str은 길이 1 이상인 문자열입니다. 입 출력 예 s return "Zbcdefg" "gfedcbZ" import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.ArrayList; class Solution { public String solution(String s) { String answer = ""; char[] stoChar = s.toCharArray(); L.. 2024. 1. 26.
내일배움캠프TIL- JWT 어제는 토큰 세션 방식에 대하여 알아보았다. 오늘은 인증 인가 방식중 JWT 기반 인증에 대해 알아보겠다. JWT 인증 방식을 알아보기전에 JWT란 무엇일까? JWT란? 인증에 필요한 정보들을 암호화시킨 토큰을 의미한다. JWT 기반 인증은 쿠키/세션 방식과 유사하게 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별한다. JWT 기반 인증 사용자가 로그인 요청을 보낸다. 서버는 DB의 유저 테이블을 뒤져서 아이디 비밀번호를 대조해본다. 실제 유저테이블의 정보와 일치한다면 인증을 통과한 것으로 보고 유저의 정보를 JWT로 암호화 해서 내보낸다. 서버는 로그인 요청의 응답으로 jwt 토큰을 내어준다. 클라이언트는 그 토큰을 저장소에 보관하고 앞으로의 요청마다 토큰을 같이 .. 2024. 1. 25.
내일배움캠프 TIL - 쿠키와 세션 웹 애플리 케이션 인증 방식중에는 쿠키와 세션 방식 그리고 JWT 방식이 있다. 그중에 쿠키-세션 방식의 인증을 알아보려고 한다. 쿠키- 세션 방식은 서버가 '특정 유저가 로그인 되었다'는상태를 저장하는 방식이다. 인증과 관련된 아주 약간의 정보만 서버가 가지고 있게 되고 유저의 이전 상태는 전부 아니더라도 인증과 관련된 최소한의 정보는 저장해서 로그인을 유지시킨다는 개념이다. 사용자가 로그인 요청을 보낸다. 서버는 DB의 유저 테이블을 뒤져서 아이디 비밀번호를 대조한다. 실제 유저테이블의 정보와 일치한다면 인증을 통과한 것으로 보고 “세션 저장소”에 해당 유저가 로그인 되었다는 정보를 넣는다. 세션 저장소에서는 유저의 정보와는 관련 없는 난수인 session-id를 발급한다. 서버는 로그인 요청의 응답.. 2024. 1. 24.
내일배움캠프 TIL - Spring Bean 저번에는 DI를 통하여 의존성 주입을 하는법을 알아 보았다. 하지만 DI를 사용하기위해선 객체 생성이 우선되어야 한다. 그렇다면 언제 어디서 누가 객체를 생성해주느냐 Spring 프레임워크가 필요한 객체를 생성하고 관리하는 역할을 대신해준다. Bean이란? Spring이 관리하는 객체를 말한다. Spring IoC 컨테이너란? Bean을 모아둔 컨테이너를 뜻한다. 일반적인 Spring Bean 등록 방법 @Component 에노테이션을 사용하여 'Bean'으로 등록하고자 하는 클래스 위에 설정한다. @Component public class MemoService { ... } Spring 서버가 동작을 할때 IoC컨테이너에 'Bean'을 저장해준다. @Component가 설정된 클래스에 대해서 Sprin.. 2024. 1. 23.
내일배움캠프 TIL - DTO를 클래스에서 record로 오늘 개인과제로 Spring API CRUD를 구현하는 과제를 진행하였다. 진행을 하면 서 DTO Data Transfer Object 라는 Entity에 바로 접근을 시키는 것이 아닌 데이터를 전달 시켜주는 객체로 Spring MVC 구조의 사이에 dto를 실행시켜주어 안전하게 데이터들을 주고 받을 수있게한다. 기본적으로 DTO를 만들려면 요청하는 RequestDto 와 요청받은 것을 반환해주는 ResponseDto 두개를 생성해야한다. 처음으로 배웠던 Dto 생성법은 @Getter @AllArgsConstructor public class ScheduleRequestDto(){ String taskName; String contents; String manager; } @Getter와 @AllArgs.. 2024. 1. 23.
내일배움캠프TIL - IoC와 DI 관계 및 DI 집중 스프링 강의를 듣게 되면서 IoC와 DI라는 것을 처음 듣고 알게 되었다. 처음에 무슨 말을 하는 지몰라 다시금 복습하기 위해 적어보면서 알아보겠다. IoC는 Inversion of Control, 제어의 역전이라는 뜻을 갖는다. IoC 컨테이너는 그 기능을 하는 것이고 프레임워크에 저어의 권한을 넘김으로써 클라이언트 코드가 신경써야할 것을 줄이는 전략으로 객체 간의 낮은 결합도를 유지하며 외부(IoC컨테이너)에서 제어를 하는 것이다. DI는 Dependency Injection, 의존관계 주입으로 이를 통해서 IoC를 구현한다. IoC와 DI가 세트로 불리게 되는 이유이기도 하다. 의존성에 대해 이해하는 것부터 알아보겠다. 의존성이란 예를 들어 우리가 다리를 다쳐서 목발을 사용하여 걷게되는 것에서 목발.. 2024. 1. 19.