전체 글 282

Spring ) Java Spring @Override annotation 이란? @Override 사용법

Java Spring 프레임워크에서 @Override 어노테이션은 메서드 재정의(Overriding)를 명시적으로 선언하는 데 사용됩니다. 메서드 재정의는 상위 클래스(부모 클래스)에 이미 정의된 메서드를 하위 클래스(자식 클래스)에서 다시 정의하여 동일한 메서드 시그니처(메서드 이름, 매개변수, 반환 타입)를 가진 새로운 구현을 제공하는 것을 말합니다. Java에서는 상속을 통해 클래스 계층 구조를 형성할 수 있습니다. 상위 클래스에는 기본적인 동작이 정의되어 있으며, 하위 클래스는 상위 클래스의 메서드를 재정의하여 필요한 동작을 변경하거나 추가할 수 있습니다. @Override 어노테이션은 다음과 같은 목적을 가지고 사용됩니다: 문법적 오류 방지: 상위 클래스에 해당 메서드가 존재하지 않거나 시그니처..

Spring 2023.07.19

Spring ) @Id, @Column, @GeneratedValue, @Entity, @Table

JPA로 코드를 작성하며 자주 나오고 가장 기본적인 어노테이션들이다. 따라서 이 어노테이션들을 정리하려고 한다. 👀 @Entity @Entity 어노테이션은 테이블과 매핑을 해주는 어노테이션으로, @Entity가 붙은 클래스는 JPA가 관리한다. @Entity 어노테이션의 속성에는 name이 있다. name의 속성에서는 JPA에서 사용할 엔티티 이름을 지정한다. 보통은 기본값인 클래스명을 사용한다. 주의 사항 - 기본 생성자는 필수이다. - JPA가 엔티티 객체 생성 시 기본 생성자를 이용한다. final 클래스, enum, interface, inner class에는 사용 불가 final 필드 불가 📖 @Table 엔티티와 매핑할 테이블을 지정한다. 생략 시 매핑한 엔티티 이름을 테이블명으로 사용한다...

Spring 2023.07.14

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