본문 바로가기

Back End

(26)
[Spring JPA] EntityManager with 영속성 컨텍스트(Persistence Context) EntityManager with 영속성 컨텍스트(Persistence Context) 개요 EntityManager를 통해 영속성 컨텍스트(Persistence Context)를 활용하는 방법에 대해 알아본다. 목차 EntityManager & EntityManagerFactory EntityManager Life-Cycle 영속성 컨텍스트(Persistence Context)의 이슈 영속성 컨텍스트의 이슈에 대한 해결방안 소개 EntityManager란? "Entity(엔티티)를 Manager(관리)해주는 역할을 하는 메모리상에 존재하는 가상의 데이터베이스"라고 할 수 있다. 가상의 데이터베이스이기 때문에, EntityManager는 Entity를 생성하고, 수정하고, 삭제할 수 있다. EntityM..
[Spring JPA] JPA의 영속성(Persistence)에 관하여 JPA가 갖는 영속성(Persistence)에 관하여 개요 JPA가 갖는 영속성(Persistence)이라는 특징에 대해 집중적으로 알아본다. 목차 JPA의 영속성 컨텍스트(Persistence Context)란? JPA, 그리고 영속성 컨텍스트(Persistence Context)의 등장배경 영속성 컨텍스트(Persistence Context)의 이점에 관하여 소개 JPA의 영속성 컨텍스트(Persistence Context)란? 영속성(Persistency)는 지속 혹은 영구적이라는 의미이다. 즉, 영속성 컨텍스트란 객체로 관리되는 엔티티를 영속화시켜 관리하는 논리적인 공간이라고 할 수 있다. 그렇다면 이러한 영구적인 공간은 왜 등장하게 되었을까? JPA는 객체지향언어인 JAVA와 DB의 다른 체계를..
[Test] RestAssured vs Mock MVC RestAssured vs Mock MVC 개요 RestAssured와 Mock MVC에 대해 알아본다. 목차 RestAssured란? Mock MVC란? Mock MVC vs RestAssured 소개 1. RestAssured란? Restful 애플리케이션의 http Endpoint의 테스트를 편리하게 하기 위한 Java의 Library 테스트 도구 RestAssured의 장점 1. Given, When, Then 구문을 사용하여 코드를 직관적으로 작성가능하다. 2. Json 혹은 XML 형태로 Response Data를 Parsing 하여, Header, Body, Status 등을 검증할 수 있다. 3. Restful Application에 특화되어 있으며, Http Endpoint와의 통신을 간..
[ORM] ORM이란? ORM이란? 개요 JAVA의 JPA를 공부하면서, ORM 기술 표준이란 말을 듣고 ORM이 무엇인지에 대해 알아본다. 목차 ORM이란? ORM 등장 이전의 시대 ORM의 장점 ORM의 단점 소개 ORM 이란? ORM이란 Ojbect Relational DataBase의 약자로, 언어 그대로 객체(Object)와 RDB의 테이블을 매핑한다는 의미이다. ORM 등장 이전의 시대 그렇다면 기존 ORM 등장 이전에는 어떤 문제들이 존재하고 있을까? 기존 프로그래밍에서는, 객체는 객체의 클래스를 사용하고 RDB는 테이블을 사용하기 때문에 객체 모델과 RDB 모델 사이의 주된 목적이 맞지 않아 개발을 해야하는 주체의 불일치가 발생하게 되었다. 이때, ORM은 이런 불일치를 해결하기 위해 중간에서 두 객체를 매핑해주..
[JAVA & Spring] JPA란? [JAVA] JPA란? 개요 JPA의 등장배경에 대하여 알아보고, JPA의 특징에 대해 공부한다. 목차 JPA의 등장배경 JPA란? JPA의 특징 소개 1. JPA의 등장배경 실제, JPA 이전에는 개발자가 직접 Query를 작성하였는데 이로 인해 JAVA의 핵심인 객체지향적인 개념이 모호해지게 되었다. 개발자들은 객체에 따른 코드의 설계와 구현이 아닌, SQL에 중점을둔 개발을 하게 되었고 실제 많은 자원이 직접적인 개발보다는 SQL에 들어가게 되었다. 이러한 문제점 및 불편함을 해결하고자 많은 프로그램들이 등장하였고, 여러 진화를 거쳐 객체와 RDB를 매핑해주는 ORM기법이 등장하였고, JAVA 진영에서도 이러한 ORM을 기술 표준으로 하는 JPA가 등장하게 된것이다. 2. JPA란? JPA는 ORM..
[Server] Jwt Token vs Session -1- (Session편) [Server] Jwt Token vs Session -1- (Session편) 개요 프로젝트를 진행하며, 프로젝트의 목적에 맞는 로그인 방식을 찾기 위해 공부한 Jwt Token을 통한 로그인과 Session을 통한 로그인 방식의 차이점을 알아본다. 그 중, 1편에서는 Session에 대해 이해하고 공부한다. 목차 Cookie 란? Session 이란? 소개 1. Cookie 란? Cookie 란? Cookie란, 브라우저가 저장하고자 하는 텍스트정보를 담은 작은 기록 정보 파일이다. 유저는, 특정 웹 브라우저에 접근 할 때, 이전에 받은 Cookie정보와 함께 서버에 요청을 하게 되며, 서버는 쿠키의 유효성을 확인하여 로그인을 유지해주는 역할을 할 수 있게 된다. Cookie의 보안 이슈 http o..
[Server] node.js 자동 로그인 구현 (Cookie + Session 활용) [Server] node.js 자동 로그인 구현 (Cookie + Session 활용) 개요 Cookie(쿠키)와 Session(세션)을 통해 자동로그인 로직을 구현해본다. 목차 app.js 설정 자동 로그인 시 Cookie값 설정 및 Session값 설정 구현 Logic 소개 1. app.js 설정 app.js 설정 Client가 로그인 요청을 하면 Server는 요청한 Client와의 Session을 열어준다. app.js this.app.use(cookieParser()); //Cookie 값을 읽기 위한 setting this.app.use( //session을 저장하기 위한 setting session({ secret: process.env.SESSEONKEY, resave: false, //r..
[Server] node.js 비밀번호 초기화 API 구현 [node.js] 비밀번호 초기화 API 구현하기 개요 node.js를 기반으로 비밀번호 초기화 API를 구현한다. 목차 Email 검증 및 Token 생성 Nodemailer module을 통해 비밀번호 초기화 링크 전송 Token 값 검증 및 비밀번호 재설정 소개 1. Email 검증 및 Token 생성 HTML 페이지에서 비밀번호를 재설정 할 Email과 함께 POST 요청 왼쪽의 이메일 전송 버튼을 클릭하여 서버로 POST 요청을 보낸다. Email 검증 및 Token 생성 app.post('/password-reset', function(req, res) { //Database에서 요청받은 Email이 존재하는지 확인 const emailId = await UserStorage.verfiedEm..