WSWon Seok Leeinwonslee.hashnode.dev·Oct 26, 2023 · 3 min read[JPA] 엔티티 equals 오버라이딩 괜찮을까?최근에 한 딜레마에 빠졌다. 레포지토리에 대한 테스트 코드를 짜고 있었는데, 확실한 DB 조회 확인을 위해 영속성 컨텍스트를 초기화(em.clear)하면서 문제가 생겼다. 테스트에서 em.clear()을 했을 때의 예시 @BeforeEach 에서 먼저 필드에 더미 데이터를 넣어준다. 추후의 테스트를 편리하게 할 목적의 필드이다. // ... public class MemberRepositoryTest { // ... ...00
WSWon Seok Leeinwonslee.hashnode.dev·Feb 28, 2023 · 4 min read[network] JWT왜 필요한데? 보안 문제 만약 서버와 클라이언트가 서로 유저 정보를 순수 JSON으로 보내게 되면, 이게 유효한 정보인지 확인할 방법이 없다. 만약 악의를 가진 공격자가 유저 ID를 바꿔서 요청을 했을 경우, 서버에선 무슨 일이 일어난 건지 알 방법이 없다. 그래서 유저를 식별할 수 있는 중요한 데이터를 토큰화시켜 주고받게 된다. HTTP의 특징 기본적으로 HTTP 통신은 무상태(Stateless)이다. 매번 사용자가 로그인...00
WSWon Seok Leeinwonslee.hashnode.dev·Feb 26, 2023 · 3 min read[network] HTTP & HTTPSHTTP(Hypertext Transfer Protocol)란? HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약이다. 대표적으로 주고 받는 데이터 형태는 HTML이다. OSI 7계층중 응용계층에 속하는 프로토콜 TCP/IP 위에서 작동 Request와 Response로 통신 비연결지향(Connectionless) HTTP는 클라이언트가 요청(Request)을 서버에 보내고, 서버는 클라이언트에게 적절한 응답(Response)을 ...00
WSWon Seok Leeinwonslee.hashnode.dev·Feb 21, 2023 · 2 min read[database] 트랜잭션트랜잭션 트랜잭션(transaction)이란? 한 묶음으로 처리되도록 만든 SQL 명령문들을 묶은 작업 단위 대부분의 의미 있는 서비스 처리를 하려면 SQL 명령문 한번 (SELECT, UPDATE, …)만으로는 어렵다. 계좌이체라는 작업을 예시로 들어보자. 만약 X의 돈을 100 감소시키는 UPDATE 문 직후에 서버가 다운되면 어떻게 될까? 더 이상 서버에선 쿼리문을 날리지 못하니, Y에겐 100만큼의 돈이 가지 않고 회사가 X의 돈을 ...00
WSWon Seok Leeinwonslee.hashnode.dev·Feb 10, 2023 · 5 min read[database] JOINJOIN JOIN이란? 둘 이상의 릴레이션에 흩어져 있는 튜플들을 특정 조건으로 조합하여 하나의 릴레이션을 구성하도록 검색(SELECT)하는 방법. 조인은 릴레이션들의 공통 속성을 기준으로 하므로 테이블들간에 최소한 하나의 속성을 공유하고 있어야 한다. 여러가지 조인 조건에 따라 검색 결과를 다르게 할 수 있다. 아래는 업데이트된 과목, 수강 테이블. 과목번호과목명강의 교수 001컴퓨터구조장성태 002정보보호개론양수미 003...00