항해99 17

[항해99 TIL] RestTemplate 개념과 예제

1. Validation @NotNull: 해당 필드의 값이 null이 아니어야 함을 나타냅니다. @Null: 해당 필드의 값이 null이어야 함을 나타냅니다. @AssertTrue: 해당 필드의 값이 true여야 함을 나타냅니다. @AssertFalse: 해당 필드의 값이 false여야 함을 나타냅니다. @Min(value): 숫자 필드가 특정 최소값 이상이어야 함을 나타냅니다. @Max(value): 숫자 필드가 특정 최대값 이하이어야 함을 나타냅니다. @DecimalMin(value): 숫자 필드가 특정 최소값(소수점 포함) 이상이어야 함을 나타냅니다. @DecimalMax(value): 숫자 필드가 특정 최대값(소수점 포함) 이하이어야 함을 나타냅니다. @Size(min, max): 문자열, 컬렉..

항해99 2023.07.06

[항해99 TIL] Spring Security

1. 필터 그림을 보게 되면 클라이언트에서 오는 요청과 응답을 최초와 최종에 있으며 응답의 정보를 바꾸거나 부가적인 기능을 추가할 수 있습니다. 스프링 프레임워크에서는 서블릿 필터를 의미하며 클라이언트로부터의 요청이 서버의 특정 URL 패턴에 매칭될 때마다 자동으로 실행되는 자바 클래스입니다. 사용 예시로는 라이언트 요청에 대한 로깅, 인증 및 권한 확인, 데이터 압축, 문자 인코딩 설정, CSRF 공격 방지 등의 작업을 수행. 1) LoggingFilter // 'topic' 매개변수로 로깅 주제를 지정할 수 있습니다. @Slf4j(topic = "LoggingFilter") @Component // 필터의 실행 순서를 지정하는 데 사용 @Order(1) // Filter 인터페이스를 구..

항해99 2023.07.06

[항해99 WIL] 숙련 1주차 로그인, 회원가입까지

1. 인증과 인가 1) 인증과 인가란? 강의에서도 인증과 인가의 개념을 나누고 있습니다. (1) 인증(Authentication)은 - Who you are 인증은 해당 유저가 당사자인지 확인하는 개념. ex) 사용자가 로그인을 시도할 때 ID와 Password를 사용해 인증 과정을 진행하여 Spring Security는 UserDeatilsService 인터페이스를 사용하여 사용자 정보를 로드합니다. (2) 인가(Authorization)은 - What you can do 유저에 대한 권한을 허락하는 것. ex) github의 Contributors를 2) 웹 어플리케이션의 인증 특수성 (1) 무상태(stateless) 통신 상태가 없는 프로토콜의 뜻은 요청과 요청 사이에 서버가 클라이언트를 기억하지 ..

항해99 2023.07.02

[항해99 TIL] JWT와 예시 코드

1. JWT(JSON Web Token) 기반 인증(토큰 기반 인증) 1) JWT란? 토큰 기반 인증 일반적으로 사용자가 로그인하면, 서버는 사용자의 신원을 확인하고 해당 사용자에게 고유한 액세스 토큰을 발급합니다. 식별할 정보가 있습니다. 이후 사용자가 서버에 요청을 보낼 때마다 토큰을 헤더나 바디에 포함시킵니다. 서버는 이 토큰으로 신원을 확인하고 리소스를 제공합니다. 이제 배울 JWT(JSON Web Token)이 대표적인 기술입니다. ②-1. 토큰 기반 인증의 장점 스케일링 : 토큰은 클라이언트에 저장되므로 서버에 부하를 줄입니다. 서버에서 상태정보를 가지고 있을 필요가 없기 때문입니다. 모바일 : 토큰 기반 인증은 모바일에 적합합니다. CORS(Cross-Origin Resource Sharin..

항해99 2023.07.01

[항해 99 TIL] 쿠키와 섹션

1. 인증과 인가 1) 인증과 인가란? 강의에서도 인증과 인가의 개념을 나누고 있습니다. (1) 인증(Authentication)은 - Who you are 인증은 해당 유저가 당사자인지 확인하는 개념. ex) 사용자가 로그인을 시도할 때 ID와 Password를 사용해 인증 과정을 진행하여 Spring Security는 UserDeatilsService 인터페이스를 사용하여 사용자 정보를 로드합니다. (2) 인가(Authorization)은 - What you can do 유저에 대한 권한을 허락하는 것. ex) github의 Contributors를 2) 웹 어플리케이션의 인증 특수성 (1) 무상태(stateless) 통신 상태가 없는 프로토콜의 뜻은 요청과 요청 사이에 서버가 클라이언트를 기억하지 ..

항해99 2023.06.30

[항해99 TIL] JPA

1. JPA란 무엇인가? "JPA"는 Java Persistence API의 약자입니다. 관계형 데이터베이스에서 자바 객체를 저장, 수정, 삭제, 조회하는 작업을 쉽게 할 수 있도록 도와주는 표준 API입니다. JPA의 작업을 영속성이라고 하는데 밑에서 설명할거니까 쉽게 말하자면 프로그램 생맹 주기가 끝나더라도 사라지지 않고 남아 있는 것 JPA를 사용하면 객체 지향적으로 데이터를 처리할 수 있게 되는데 이는 간결하지만 이해하기 쉬워집니다. JPA는 인터페이스 모음이라 여러가지의 구현체가 있는데 몇가지 정리해보겠습니다. 1) Hibernate 자바 api와 관계형 데이터베이스 사이의 객체 관계 매핑을 해주는 구현체입니다. 객체-관계 맵핑(ORM) Hibernate는 자바 객체와 데이터 베이스 테입르 사이..

항해99 2023.06.30

[항해99 TIL] MVC, DTO, IOC

1. Spring MVC란 무엇인가? Spring MVC를 알기 전에 MVC 패턴를 알아야 합니다. 1) MVC패턴 Model-View-Controller의 줄임말로 어플리케이션을 구조화하는 방법입니다. 여기서 어플리케이션을 구조화하는 이유는 개발 과정에서 찾아볼 수 있는데 정리한다면 **가독성** : 이해와 수정이 쉬움 **재사용성** : 모듈화로 동일한 코드 사용 가능 **유지보수** : 문제 발생시 보수하기 쉬움 **확장성** : 기존 기능을 확장하기 쉬움 **테스트 용이성** : 모듈화가 잘 되어 있으면 독립적인 테스트가 용이합니다. 그래서 구조화하는 방법 중 한가지인 MVC는 세가지로 분리하여 설계되어 있는데 **모델, 뷰, 컨트롤러**로 나누게 됩니다. (1) 모델 (Model) 모델은 어플리..

항해99 2023.06.28

[항해 99 WIL] 1주차 정리(Spring 시작)

1. Spring MVC란? 1) MVC는? Model-View-Controller (MVC)는 사용자 1. Spring MVC란? 1) MVC는? Model-View-Controller (MVC)는 사용자 인터페이스를 구현하는 데 사용되는 디자인 패턴. 말그대로 Model과 View와 Controller로 구성요소가 나누어집니다. 이 패턴을 사용하는 이유는 재사용성과 유지 보수 라고 볼 수 있습니다. MVC는 Model과 View와 Controller로 나누어지는데 Model : 애플리케이션의 비즈니스 로직, 데이터를 포함하고 처리하는 부분으로, 데이터베이스와 같은 데이터 소스와의 상호 작용을 담당 View : 사용자에게 보여지는 부분, 즉 UI(User Interface)를 뜻합니다. Controll..

항해99 2023.06.28

[항해 99 TIL] 예외 처리(exception handling)

1. 예외 처리란? 프로그래밍에서 비정상적인 방향으로 향하게 되면 처리를 하게 됩니다. 저희가 보통 보는 에러 error가 있습니다. 이제 그러한 것들은 컴파일 단계에서 강제로 종료가 됩니다. 그래서 프로그램 입장에서는 치명적인 상태가 된다고 봅니다. 그러나 error보다는 정도가 약한 오류가 있습니다. 그것이 오늘 기술해볼 예외exception입니다. 예외 처리를 하는 이유는 프로그램 안정성 보장 오류 내용 전달 안전하게 데이터베이스 연결, 파일이나 패키지를 열 수 있습니다. 프로그램 흐름 제어 2. 예외 처리 방법 1) try-catch 기본적인 예외 처리 방식이며 try 블록 내에 예외가 발생할 코드를 넣고 catch블록으로 예외 처리를 하게 됩니다. try { // 예외가 발생할 수 있는 코드 }..

항해99 2023.06.21