분류 전체보기 299

Spring ) DI, IoC 정리

🌱DI(Dependency Injection) DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다. 첫번째 방법은 A객체가 B와 C객체를 New 생성자를 통해서 직접 생성하는 방법이고, 두번째 방법은 외부에서 생성 된 객체를 setter()를 통해 사용하는 방법이다. 이러한 두번째 방식이 의존성 주입의 예시인데, A 객체에서 B, C객체를 사용(의존)할 때 A 객체에서 직접 생성 하는 것이 아니라 외부(IOC컨테이너)에서 생성된 B, C객체를 조립(주입)시켜 setter 혹은 생성자를 통..

Spring 2023.07.14

왜 JWT를 사용하는가? JWT 사용 이유

1. 서론 JWT에 대한 내용을 정리한다. 2. What is JWT JSON Web Token의 준말이다. 자바스크립트의 JSON 타입을 띄고 있으며, Web Token으로써 사용할 수 있다는 의미다. 2.1. JWT 사용 이유 HTTP는 기본적으로 state-less를 지향한다. state-less(무상태)란? 서버와 클라이언트 간의 통신 시 항상 사용자의 정보를 가지고 있지 않는 것. → 때문에, JWT 안에 회원에 대한 값을 넣어 회원을 식별한다. 2.2. JWT의 구성 aaaaaaa.bbbbbbb.ccccccc //헤더.페이로드.시그니처 구성은 헤더, 페이로드, 시그니처로 나뉜다. 각 역할은 다음과 같다. 헤더: 토큰 타입, 암호화 알고리즘 명시 페이로드: JWT에 넣을 데이터, JWT 발급 /..

ComputerScience 2023.07.14

JWT란? 왜 사용할까? 장단점은?

인증과 인가 먼저 jwt를 파보기 전에 인증가 인가는 간단하게 짚고 넘어가자. 인증 Authentication 로그인 놀이공원 입장 인가 Authorization 사용자의 로그인 이후의 활동에 대한 서버의 허가 티켓을 보여주면 놀이기구를 탈 수 있음 인증과 인가의 방법 쿠키, 세션, 토큰 JWT(Json Web Token) 서비스에서 유저를 인증하고 식별하기 위한 Token(토큰) 기반 인증 방식 토큰은 세션과 달리 서버가 아닌 클라이언트에 저장된다. 인증에 필요한 정보들을 암호화시킨 Json형식의 토큰 JWT의 구조 & 생성 & 발급 Header(헤더) JWT에서 사용할 타입과 해시 알고리즘의 종류 { "alg": "HS256", "typ": "JWT" } payload(페이로드) 서버에서 첨부한 사용..

ComputerScience 2023.07.14

789 KPT

Keep 적극적인 자세로 소통과 협업을 하여 프로젝트가 수월하게 진행되었다. 서로의 컨디션을 신경써주며 서로 배려하는 자세를 보였다. git의 organizations를 통해 원활한 버전 관리를 하였다. PR merge 시 규칙을 정해 한 명 이상의 리뷰를 받아야만 Merge 할 수 있도록 규칙을 설정했다. 다같이 모여 코드 리뷰를 통해 팀원 모두가 프로젝트 코드에 대한 이해를 하려고 노력했다. 기획 단계에서 Figma, Miro(ERD 다이어그램 만드는 프로그램) 등의 협업 툴을 사용하여 진행하였다. Problem 코딩컨벤션 프론트에 대한 지식이 없어 프론트, html 등의 연결은 하지 못했다 (Postman 으로 테스트 , 검증하였음) API 명세서 잦은 수정 Commit의 횟수가 적음 기능에 대한 ..

KPT 2023.07.13

Spring ) AOP (Aspect Oriented Programming)란?

AOP (Aspect Oriented Programming)란? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하겠다는 것이다. *모듈화 : 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것 예를 들어 핵심적인 관점은 비즈니스 로직이 될 수 있고, 부가적인 관점은 핵심 로직을 실행하기 위해 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등이 될 수 있다. AOP는 흩어진 관심사(Crosscutting Concerns)를 모듈화 할 수 있는 프로그래밍 기법이다 [그림 1] AOP 예시 [그림 1]과 같이 클래스 A, B, C에서 공통적으로..

Spring 2023.07.13

Spring ) AOP

참조 : https://teamsparta.notion.site/Spring-Master-5-3ecdf6efc104448da71957aa031e914c#2dfed4b7846f4f07a07e4d9716b3b87a Spring AOP란 무엇일까? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하겠다는 것이다. Spring의 AOP 애너테이션 Spring의 AOP 애너테이션 @Aspect Spring 빈(Bean) 클래스에만 적용 가능합니다. 어드바이스 종류 @Around: '핵심기능' 수행 전과 후 (@Before + @After) @Befor..

Spring 2023.07.13

Spring ) 스프링 빈(Bean)이란 무엇인가?

빈(Bean) 빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다. 즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다. 빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다. @Bean 어노테이션을 통해 메서드로부터 반환된 객체를 스프링 컨테이너에 등록한다. 빈은 클래스의 등록 정보, Getter/Setter 메서드를 포함하며, 컨테이너에 사용되는 설정 메타데이터로 생성된다. 설정 메타데이터 : XML 또는 자바 어노테이션, 자바 코드로 표현하며, 컨테이너의 명령과 인스턴스화, 설정, 조립할 객체 등을 정의한다. 빈(Bean) 접근 방법 먼저, ApplicationContext(스프링 컨테이너)..

Spring 2023.07.12

Spring ) Intro to the Jackson ObjectMapper / ObjectMapper 정리

개요 Java 개발자라면 Jackson에서 제공하는 ObjectMapper와 자주 마주치게 됩니다. Java 클래스 내용을 확인하거나 내용물의 Parsing 과정에 필요한 커스터마이징이 존재하기 때문입니다. 물론 중요한 기능은 (1) "Java Object" =Serialize=> "JSON", (2) "JSON" =Deserialize=> "Java Object" 입니다. 개발 중에 매 번 찾아보기 지쳐서 이제는 한 곳에 정리가 필요하지 않을까 생각되어서 이 글을 쓰게 되었습니다. 목차 Add Dependency for "Jackson ObjectMapper" Basic Features Convert "Java Object" to "JSON" Convert "JSON" to "Java Object" C..

Spring 2023.07.12