목표토이프로젝트 고찰, 보완 결과 JWT(JSON Web Token) 인증에 필요한 정보들을 암호홧기킨 JSON 토큰.JWT 토큰을 HTTP 헤더에 실어 서버가 클라이언트를 식별함JSON 데이터를 인코딩하여 직렬화하였고 내부에 위변조 방지 위한 전자 서명도 있음 . 을 구분자로 세 부분으로 나뉨 (헤더, 내용, 서명) 인증 과정1. 사용자가 ID, PW 입력해 서버에 로그인 인증을 요청함2. 서버가 인증 요청을 받으면 헤더, 내용, 서명을 정의한다. 헤더, 내용, 서명을 각각 Base64로 한 번 더 암호화해 JWT 생성 후 이를 쿠키에 담아 클라이언트에게 발급3. 클라이언트는 서버에서 받은 JWT를 로컬 스토리지에 저장한다. API를 서버에 요청할 때 Authorization header에 Ac..
목표 토이프로젝트 고찰, 보완 결과 제어의 역전(IoC)- 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하거나 생성하지 않음- 자신도 어떻게 만들어지고 어디서 사용되는지 알 수 없음- 모든 제어 권한을 자신이 아닌 다른 대상에서 위임을 함 빈(Bean)- 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트 빈 팩토리- 빈의 생성과 관계설정과 같은 제어를 담당하는 IoC 오브젝트 애플리케이션 컨텍스트- 빈 팩토리를 더 발전시킨 것이라고 이해하면 됨- 별도로 설정정보 담고 있는 무언가를 가져와 활용하는 범용적인 IoC 엔진같은 것 싱글톤의 한계- private 생성자를 갖음 -> 상속, 다형성 적용 안됨- 테스트하기 힘듦 or 불가능- 서버 환경에서 싱글톤이 하나만 만들어지는 것을 보장 ..
목표뱅킹 시스템 기능 구현 with SpringBoot 결과 기초적인 뱅킹 시스템을 구현하였다. 프론트 구현은 안하고 백엔드 부분만 구현을 해서 어떻게 구현을 해야할지 잘 감이 안와서 기초적인 것들만 하였다. 인증과 관련된 것들을 구현하고 싶어서 JWT와 Spring Security에 대해서 간단히 공부를 하였다. 간단히 말해서 JWT란 JSON 객체에다가 인증과 관련된 정보들을 담고 비밀키로 서명한 토큰이다. JWT 구조에 대해서 공부했다. Spring Security는 Spring 기반의 보안을 담당하는 프레임워크이다. 아키텍쳐와 처리과정이 상당히 복잡해서 사실 공부가 많이 필요한 부분 같았다. 간단히 공부를 하기 했지만 네트워크 관련된 부분이기도 하고 인증 절차는 프론트로 간단히 로그인 페이..
목표 도서관 관리 시스템 확장 with Spring Boot 결과 저번 주차에 java로 구현했던 도서관 관리 시스템의 구조를 spring boot를 이용해 개선하고 mysql과 연결을 하였다. 프로젝트 구조는 다음과 같다. controllerUserControllerBookControllerdtoUserDtoBookDtomodelBookUserrepositoryUserRepositoryBookRepositoryroleRoleserviceUserServiceBookService 원래는 Admin, Student에 관해 controller와 role이 정의되었다.이 점을 보완해 Admin, Student를 role에 정의를 하고 하나로 묶었다.그리고 Entity에서 필요한 정보들만 꺼내서 데이터..
목표객체 지향 5가지 원칙(SOLID) 정리 결과 좋은 객체 지향의 5가지 원칙 (SOLID)로버트 마틴(클린코드 저자)이 좋은 객체 지향 설계의 5가지 원칙을 정리했다. SRP(단일 책임 원칙) " 한 클래스는 하나의 책임만 가져야 한다." 이 문장에서 하나의 책임이라는 말은 모호하다. 책임이라는 것은 문맥과 상황에 따라 달라질 수 있다.여기에서 중요한 것은 "변경" 이다. 변경을 했을 때 그 효과가 적으면 단일 책임 원칙을 잘 따른 것이라고 볼 수 있을 것이다.SRP를 지키기 위한 방법 중 가장 먼저 떠오르는 것은 객체의 생성과 사용을 분리하는 것이다. OCP(개방 폐쇄 원칙)"확장에는 열려 있고 변경에는 닫혀 있어야 한다." 확장을 하려면 당연히 변경이 있어야 하는데 확장에는 열려 ..
1주차 : 객체 지향 5가지 원칙 (SOLID) 정리2주차 : 도서관 관리 시스템 기능 구현 with JAVA3주차 : 도서관 관리 시스템 확장 with SpringBoot4주차 : 뱅킹 시스템 기능 구현 with SpringBoot5주차 : 토이 프로젝트 고찰, 보완6주차 : 토이 프로젝트 고찰, 보완