목록백앤드 개발일지 (66)
늘
https를 써도 GET으로 보내면 브라우저 히스토리엔 주소가 남는다. 사용자 컴퓨터에 브라우저 기록을 외부로 전송하는 악성 코드가 있으면 보안에 이슈가 생긴다. 네트워크에서 안전이란 리소스 변경이 일어나지 않으면 안전 ex) get 안전 GET 방식으로도 Requestbody 붙일 수 있다. 그럼에도 불구하고 보안상 POST가 더 좋다. GET은 url에 정보가 오픈되니깐. [REST 구성 스타일] client-server stateless cache uniform interface
Continuous Integration(CI)와 Continuous Delivery(CD) CI CI(Continuous Integration)는 개발자가 공유 버전 제어 저장소에서 팀의 코드를 컴파일 할 수 있도록 함으로써 빌드 주기 비효율성을 줄이기 위한 프로세스입니다. 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합되므로 여러 명의 개발자가 동시에 어플리케이션 개발과 관련된 코드 작업을 할 경우에서 발생하는 충돌을 해결할 수 있습니다. CD 지속적인 서비스 제공(Continuous Delivery) or 지속적인 배포(Continuous Deployment) 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 레포지토리에 자동 업로드 ..
저번에 jwt토큰 방식에 대해서 설명을 드리고 이번에는 스프링의 전통 기반인 session 인증 방식에서 간단하게 적용해 보려고 해요. 이번 포스트는 세션 방식으로 웹페이지 로그인, 회원가입을 구현하면서 느낀 점을 적어보려고 합니다...! 이번 포스트도 이용한 프레임워크는 springboot + gradle + h2 + springsecurity입니다. package board.configuration; import board.Service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springfra..
Jwt와 Session방식의 차이에 대해서 공부했다. 우선 우리가 사용하는 스프링 부트는 Session기반으로 작동되어 있다고 한다. 그래서 평소 자연스럽게 이용했던 세션을 통한 인증 관리가 아닌 이번에는 JWT를 이용하여 회원 인증과 권한을 관리해보려고 한다..! 그전에 잠깐 Session&Cookie 기반 인증방식과 Token(jwt) 기반 인증 방식의 차이를 간단하게 설명해 보겠다. Session & Cookie 유저가 로그인하고 세션이 서버 메모리 상에 저장된다. (서버 단에서 메모리 차지가 클 수 있다.) session Id를 기준으로 정보를 전달한다. 브라우저에 쿠키로 session Id를 저장 -> 쿠키로 보내진다. JWT(Json Web Token) 방식 Header, Payload, Si..
예~전에 공부한 내용이지만 복습할 겸 글을 적어보려고 한다. 우선 이해하기 쉽게 정의를 해보자면 DAO: 실제 DB에 접근하는 객체 DTO: DB에서 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체 DAO는 최근(?)에는 Repository라고 부른다. 말 그대로 저장소인데 DB에 접근하는 객체(엔티티)로서 이러한 엔티티를 설계할 때는 주로 @setter를 추가하지 않는다. DB와 연관된 만큼 마음대로 수정되면 에러가 발생하기 쉽기 때문이다...! 주로 Builder등 다른 방식으로 이용하는데 이와 관련된 내용도 할 말이 많아서 다음에 포스팅하겠다.! DTO는 DAO로부터 받은 정보들을 controller나 service단에서 자유롭게 움직일 객체이다. 따라서 @getter @se..
상속 논리 모델을 DB 물리 모델로 구현하는데에는 크게 3가지가 있다고 한다. 1. 조인 전략 2. 단일 테이블 3. 구현 클래스 각각 테이블 전략(3번은 잘 안쓴다고 한다..그래서 제외!) 1. 조인 전략 우선 상속 전략을 InheritanceType.JOINED로 설정해준다 그러면 오른쪽 그림처럼 엔티티간에 각각의 DB 테이블이 생성할 수 있다. 가장 정규화된 방법이라고 한다. 2. 단일 테이블 서비스 규모가 크지 않고, 굳이 조인 전략을 선택해서 복잡하게 갈 필요가 없다고 판단 될 때에 이용한다. 한 테이블에 다 저장하고, DTYPE으로 구분하는 단일 테이블 전략을 선택할 수 있다. 개인적으로 작은 프로젝트를 해보면서 단일 테이블 전략에 매력을 느꼈었다. (한눈에 보기 좋아서..) 그런데 규모가 커..