이번주 수업시간에는 JWT와 토큰, OAuth2에 대해 공부했습니다. 서버 기반 인증 vs 토큰 기반 인증 서버에 접근하는 인증된 사용자를 구분하는 대표적인 방법으로는 서버 기반 인증과 토큰 기반 인증 2가지 방법이 있다. 화면 없이 Ajax와 JSON을 이용해서 데이터를 주고받는 구조에서는 세션이나 쿠키를 이용하는 기존 인증방식에 제한을 받게 된다. 이 문제를 해결하기 위해 사용하는 것이 JWT(JSON Web Token)이다. (인증받은 사용자들은 특정한 문자열인 토큰을 이용하게 된다.) 토큰을 사용한다는 것은 요청과 응답에 토큰을 함께 보내 유효한 사용자인지를 검색하는 방법이다. 이때 보통 JWT를 사용해서 토큰을 전달한다. 클라이언트가 아이디와 비밀번호를 서버에게 전달하며 인증을 요청한다. 서버는..
스프링을 공부하면서 용어가 헷갈리는 경우가 많은데 복습하면서 확실히 정리해두기 위해서 포스팅을 했습니다. VO(Value Object) 혹은 엔티티(Entity) 객체지향 프로그램에서는 데이터를 '객체'라는 단위로 처리한다. ex) 테이블의 한 행(row) → 하나의 객체 엔티티(Entity) : 데이터베이스에서의 하나의 데이터 VO(Value Object) : 값을 보관하는 용도(객체), 테이블의 한 행 개념 자바에서는 엔티티를 처리하기 위해 테이블과 유사한 구조의 클래스를 만들어서 객체로 처리하는 방식을 사용한다. 주로 데이터 자체만을 의미하기 때문에 getter만을 이용한다. DAO(Data Access Object) DAO(Data Access Object) : 데이터를 전문적으로 처리하는 객체,..
웹 프로젝트의 기본 구조 대부분의 웹 프로젝트들은 여러프로그램이 같은 네트워크를 통해 연결되는 구조로 이루어진다. 브라우저 or 클라이언트 프로그램 랜더링(rendering) : 서버에서 전송한 결과를 화면에 보여준다. 서버에 원하는 데이터를 보내는 사용자의 요청(request)과 응답(response)을 받는 프로그램 관련기술 : HTML / CSS / 자바스크립트 웹 서버(Web Server) or WAS(Web Application Server) 웹 서버 : 이미지와 같은 고정된 데이터를 제공한다. WAS : 동적으로 매번 새로운 데이터를 만들어 제공한다. 관련 기술 : 서블릿/JSP, 각종 프레임워크와 언어들 데이터베이스 영구적으로 데이터를 보관하고 운영하기 위한 프로그램 기본적으로 관계형 데이터..
이번주 스프링 수업에서는 로깅에 대한 이론수업과 Mock에 대해 공부했습니다. Logback(LOGGING) 로깅 오류발생 시 콘솔에 print해서 나오도록 찍는 것 시스템이 동작할 때 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것 스프링부트 프로젝트를 생성하고, 의존관계를 확인해보면 logging 스타터를 이용하여 기본적으로Logback과 Log4j를 SLF4J 구현체로 가지고 있는 걸 확인할 수 있다. 5단계의 로그 레벨 Error : 예상하지 못한 심각한 문제가 발생하는 경우, 즉시 조취를 취해야 할 수준의 레벨 Warn : 로직 상 유효성 확인, 예상 가능한 문제로 인한 예외 처리, 당장 서비스 운영에는 영향이 없지만 주의해야 할 부분 Info : 운영에 참고할만한 사항, 중요한 비..
2023.01.09 - [SPRING] - Spring Data JPA - todolist 실습(1-3) DTO Spring Data JPA - todolist 실습(1-3) DTO 2023.01.05 - [SPRING] - Spring Data JPA - todolist 실습(1) Repository Spring Data JPA - todolist 실습(1-2) Repository 2023.01.04 - [SPRING] - Spring Data JPA - todolist 실습(1-1) Entity JpaRepository JpaRepository : Spring Data JPA를 이용할 때 smallsnail.tistory.com Service (CRUD 작업처리) service 인터페이스를 선언하고 ..
2023.01.05 - [SPRING] - Spring Data JPA - todolist 실습(1) Repository Spring Data JPA - todolist 실습(1-2) Repository 2023.01.04 - [SPRING] - Spring Data JPA - todolist 실습(1-1) Entity JpaRepository JpaRepository : Spring Data JPA를 이용할 때는 JpaRepository 인터페이스를 이용해서 데이터베이스 관련 작업을 처리한다. ( My Batis의 Mapper 인 smallsnail.tistory.com DTO (CRUD 작업처리) Repository의 모든 메소드는 서비스 계층을 통해서 DTO로 변환되어 처리되도록 구성한다. Enti..
17주차에 실습한 Spring 웹사이트 수업 내용을 정리해보았습니다. MyBatis와 JPA는 각각 언제 사용하는 것이 좋을까? MyBatis : 테이블이 많아져서 복잡한 경우 JPA : 간단한 프로젝트 Calendar 스프링으로 만들어보기 schedule 입장에서는 user는 1명 > @ManyToOne user 입장에서는 여러개의 schedule이 가능 > @OneToMany(fetch = FetchType. fetch : 가져오다 jpa에서는 자동으로 1개의 쿼리를 조회시 알아서 여러 쿼리 조회 n+1문제 > 자원문제 >속도저하 FetchType.EAGER(바쁘게) : 연관있는 entity 그대로 가져감, 즉시실행, 일대일로 매핑되는 테이블은 한테이블로 움직임 FetchType.LAZY(게으르게) ..
2023.01.04 - [SPRING] - Spring Data JPA - todolist 실습(1-1) Entity Spring Data JPA - todolist 실습(1-1) Entity Todolist 더보기 닫기 GET - /todos → 할일 목록 불러오기 POST- /todos → 할일 등록 DELETE - /todos/{id} → 할일 삭제 create table todo( id INT NOT NULL AUTO_INCREMENT, todos VARCHAR(50) NULL, indate DATETIME NULL DEFAULT CURRENT_TIME smallsnail.tistory.com JpaRepository JpaRepository : Spring Data JPA를 이용할 때는 JpaR..