분류 전체보기 (193) 썸네일형 리스트형 JWT JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. 즉 토큰의 한 종류이다. 보통 쿠키 저장소에 담긴다. JWT의 사용 이유 1.서버가 1대인 경우 Session1 이 모든 Client 의 로그인 정보 소유 2.서버가 2대 이상인 경우 서버의 대용량 트래픽 처리를 위해 서버 2대 이상 운영 필요 Session 마다 다른 Client 로그인 정보를 가지고 있을 수 있음 Session1: Client1, Client2, Client3 Session2: Client4 Session3: Client5, Client6 Client 1 로그인 정보를 가지고 있지 않은 Sever2 나 Server3 에 API 요청을 하게되면 어떻하지?.. 인증과 인가 스프링에서 “인증”과 “인가”를 관리해주는 것 = 스프링 시큐리티 인증(Authentication)은 해당 유저가 실제 유저인지 인증하는 개념이다. ex) 휴대폰 지문인식, 사이트 로그인 인가(Authorization)는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념이다. ex)관리자 페이지에는 관리자만 접근할 수 있다. 웹 어플리케이션의 인증 1.쿠키-세션 방식의 인증 쿠키-세션 방식은 서버가 특정 유저가 로그인 되었다는 상태를 저장하는 방식이다. 인증과 관련된 아주 약간의 정보만 서버가 가지고 있게 되고 유저의 이전 상태의 전부는 아니더라도 인증과 관련된 최소한의 정보는 저장해서 로그인을 유지시킨다는 개념이다. 사용자가 로그인 요청을 보낸다. 서버는 DB의 유저 테이블에서 아이디와 .. 22년 12월 13일 의존성 주입 자바 스프링이 대신 해주고 있던 의존성 주입에 대해 공부했다. https://move22.tistory.com/148 의존성 주입 - 스프링 IoC컨테이너 의존성 주입을 사용하기 위해서는 객체 생성이 우선 되어야 한다. 이때, 스프링 프레임워크는 필요한 객체를 생성하여 관리하는 역할을 대신 해준다. 빈 (Bean): 스프링이 관리하는 객체 스프링 IoC 컨테이너: '빈'을 모아둔 통 '빈' 등록 방법 이전 글(https://move22.tistory.com/148)에서 쓴 Water와 Cup을 예시로 쓰자면 다음과 같다. 1.@Component @Component public class Water {} 스프링 서버가 실행될 때 스프링 IoC 에 '빈'을 저장해 준다. 1-1. 스프링이 @Component 객체에 대해서 하는 일 // 1. Water 객체 생성 Water water = new Water(); // 2. 스프링 IoC 컨테이너에 빈 (water.. 의존성 주입 - 강한결합 Spring의 의존성 주입이란 스프링 컨테이너가 객체간에 의존성을 부여하는것을 의미한다. DI (Dependency Injection)" 혹은 한국말로 "의존성 주입"이라고 부른다. 강한결합 의존성 주입이 되지 않은 '강한 결합'의 예시와 문제는 다음과 같다. 1.컵에 물이 담긴다는 의미로 객체 'Cup'과 'Water'를 생성하여 사용한다. Water.java public class Water{ ... } Cup.java public class Cup{ private final Water water; public Cup() { this.water = new Water(); } } 이때, Cup에는 새로 water을 생성하여 사용해주었다. 2.Water객체에 식용인지 아닌지 구분하기 위해서 생성자에 di.. 22년 12월 12일 영속성 컨텍스트 입문 프로젝트를 하면서 원리도 모르고 사용했던 Spring Data JPA의 영속성 컨텍스트에 대해서 간단히 공부했다 https://move22.tistory.com/146 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장 하는 환경 이라는 뜻이다. 어플리케이션이 데이터베이스에서 꺼내온 데이터 객체를 보관하는 역할을 한다. 영속성 컨텍스트는 엔티티 매니저를 통해 엔 move22.tistory.com 영속성 컨텍스트에 대해서 잘 몰라도 스프링을 사용할 수 있지만, 배우고 나니 입문 프로젝트때 생각 없이 썼었던 코드들이 조금 다르게 보였다. 사실, 나는 JPA가 작동하는 방식을 잘 모르기에 신뢰가 가지 않았었는데, 오늘 영속성 컨텍스트에 대해 공부하고 나니 JPA가 어떻게 동작하는지 조금이나마 알게 된것.. 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장 하는 환경 이라는 뜻이다. 어플리케이션이 데이터베이스에서 꺼내온 데이터 객체를 보관하는 역할을 한다. 영속성 컨텍스트는 엔티티 매니저를 통해 엔티티를 조회하거나 저장할때 엔티티를 보관하고 관리한다. 영속성 컨텍스트 = 엔티티 매니저마다 가지고 있는 어떠한 공간 영속화 한다 = 엔티티 매니저가 자기의 영속성 컨텍스트에 넣어준다 JPA 엔티티의 상태 비영속(New) : 영속성 컨택스트와 관계가 없는 새로운 상태이다. 해당 객체의 데이터는 실제 DB의 데이터와는 관련없고, 그냥 Java 객체인 상태다. 영속(Managed) : 엔티티 매니저를 통해 엔티티가 영속성 컨텍스트에 저장되어 관리되고 있는 상태이다. 이와 같은 경우 데이터의 생성, 변경등을 JPA가 추적하면서 필요.. 15주차 개발일지 이번주는 스프링 JPA를 이용하여 간단한 프로젝트를 하나 만들었다. https://github.com/zeroempty2/Springpractice GitHub - zeroempty2/Springpractice Contribute to zeroempty2/Springpractice development by creating an account on GitHub. github.com html없이 데이터만 CRUD를 해야해서 포스트맨이란걸 처음 사용해 보았는데, 사용법을 몰라서 처음에는 몇시간동안 고생을 해야 했다. 포스트맨 사용법을 익히고, 겨우겨우 프로젝트를 완성했는데, DTO를 사용하여 반환하는 것에서 막혔다. 어찌저찌해서 DTO를 통해 반환하는 것을 구현했는데 해놓고 보니 저번 프로젝트에서 레파지토리.. 22년 12월 10일 스프링 입문 과제 수정 zep에 혼자 접속해 알고리즘을 풀고있었는데 갑자기 튜터님이 들어오셔서 입문과제에 대한 피드백을 해주셨다. 튜터님의 피드백을 받아 입문과제를 수정했다. @JsonIgnore에 대한 피드백을 받았는데, 이 어노테이션은 전에 DTO를 통하지 않고 바로 Entity를 통해 값을 받아와 반환할때, password가 자꾸 노출되어서 json에서 노출되지 않게 하기 위해 넣어놓은 것이었다. DTO를 통해 값을 반환되게 하는 수정 후, DTO를 통해 반환받아도 전체 목록 조회에서는 DTO가 entity의 리스트의 형태로 반환되때문에 @JsonIgnore를 하지 않으면 password가 그대로 노출되는 문제가 있었다. 하지만 튜터님은 만약 password가 노출되어야 하는 상황해서 @JsonIgnore가 걸려있으면 값.. 22년 12월 08일 오늘은 어제 만들었던 과제파일을 수정했다. get에서도 dto를 통해 값을 반환받게 했는데,원하는 값이 나오지 않아 계속 수정해야했다. 불러오려는 list의 이름이 자꾸 나와서 없애보려는데, for문을 돌려서 하나하나 어레이리스트에 담으려니 그건 아닌것같아서 포기했다. 오늘 하루종일 붙잡고 있었는데 내일 다시 시도해보아야 할 것같다. 이전 1 ··· 9 10 11 12 13 14 15 ··· 20 다음