전체 글

· BE/Spring
문서화 게시판 프로젝트 미션에는 API 문서화에 대한 조건이 주어졌다. API 문서화를 해본 적이 없었기 때문에 조사를 먼저 시작했다. 우선 스프링 부트 환경에서 문서화로 유명한 도구는 REST Docs와 Swagger로 알고 있었기에 두 가지를 짧게 사용해 보면서 비교해 보고 현재 내 상황에 맞는 것을 사용하기로 했다. REST Docs Spring REST Docs는 RESTful 서비스의 정확하고 읽기 쉬운 문서를 생성하기 위한 도구입니다. 이는 실제 코드와 함께 동작하며, 테스트 기반의 접근 방식을 사용하여 API 문서화 작업을 수행한다. 주요 특징 장점 테스트 기반: Spring REST Docs는 테스트 중에 문서 조각(snippets)을 생성합니다. 코드 변경으로 테스트코드가 같이 변경될 때..
· BE/Spring
Spring DataJPA 쿼리메서드는 어떤값을 사용할까? 문제 상황 Comment가 Post를 갖고 있고 Post는 Comment를 갖고 있지않습니다. 그래서 Post에 맞는 댓글을 조회해야하는 상황이고 Comment에서 ID가 1인 Post를 찾기위해 쿼리메소드를 아래처럼 작성했지만 오류가 발생했습니다. List findByPostId(Long postId) Failed to create query for method public abstract java.util.List com.devboard.comment.repository.CommentRepository.findByPostId(java.lang.Long); No property 'id' found for type 'Post'; Traversed..
· BE/Spring
Spring Data JPA를 이용한 쿼리 메서드에 대해 알아보겠습니다. 레포지토리는 JpaRepository를 상속받는 것만으로도 다양한 CRUD 메서드를 제공합니다. 하지만 기본 메서드들은 식별자 기반으로 생성되어 있기 때문에 결국 별도의 메서드를 정의해서 사용하는 경우가 많습니다. 이때 간단하게 사용할 수 있는것이 쿼리 메서드입니다. //리턴타입 + {주제 + 속성} 구조의 메소드 List findByLastnameAndEmail(String lastName,String email); find...By, exists...By 와 같은 키워드로 쿼리의 주제를 정하며 'By'는 서술어의 시작을 나타내는 구분자 역할을 합니다. 서술어 부분은 검색 및 정렬 조건을 지정하는 영역입니다. 그리고 And,Or을..
이 포스트에서는 대칭키와 공개키 암호화의 기본 개념을 살펴보고 어떻게 사용되는지 알아보겠습니다. 1. 대칭키 암호화(Symmetric-key encryption) 대칭키 암호화는 암호화와 복호화 과정에 동일한 키를 사용하는 암호화 방식입니다. 이 방식의 핵심은 데이터를 전송하는 사람과 데이터를 수신하는 사람이 동일한 비밀 키를 공유하는 방식입니다. 장점: 처리 속도: 대칭키 암호화는 공개키 암호화에 비해 빠른 처리 속도를 가집니다. 이로 인해 대규모 데이터 암호화에 더 적합합니다. 알고리즘의 간결함: 대칭키 암호화 알고리즘은 공개키 암호화 알고리즘보다 상대적으로 간단합니다. 이로 인해 구현 및 유지 관리가 쉽습니다. 컴퓨팅 자원 소모량: 대칭키 암호화는 공개키 암호화에 비해 적은 컴퓨팅 자원을 필요로 합..
· BE/Spring
JPQL 가장 단순한 조회 방법 EnityManager.find() 객체 그래프 탐색(a.getB().getC()) JPA를 사용하면 엔티티 객체를 중심으로 개발 문제는 검색 쿼리 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요 JPA는 SQL을 추상화한 JPOL이라는 객체 지향 쿼리 언어 제공 SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY,HAVING, JOIN 지원 JPOL 은 엔티티 객체를 대상으로 쿼리 SQL은 데이터베이스 테이블을 대상으로 쿼리 QueryDSL 소개 문자가 아닌 자바코드로 JPQL을 작성할 수 있..
· BE/Spring
쿠키와 세션에 대한 설명 쿠키(Cookie) 쿠키는 사용자가 인터넷을 사용할 때 생성되는 작은 텍스트 파일이다. 웹사이트에서는 서버에서 쿠키를 생성하여 사용자의 웹 브라우저에 저장하게 된다. 이후, 같은 웹사이트를 방문할 때마다 브라우저는 이 쿠키를 서버에 전송하게 되며, 서버는 이를 통해 사용자의 정보를 인식하고 다양한 기능을 제공할 수 있다. 예를 들어, 로그인 정보나 쇼핑몰에서 장바구니에 담은 상품 등을 저장할 때 사용한다. 세션(Session) 웹사이트에서 세션이란, 사용자가 로그인을 하여 웹사이트와 상호작용하는 동안 유지되는 일시적인 상태 정보를 말한다. 즉, 사용자가 로그인을 하면 서버에서는 해당 사용자에 대한 세션을 생성하며, 이후에는 이 세션을 통해 사용자를 인증하고, 사용자의 정보를 저장..
· BE/Spring
@RequestBody와 @ModelAttribute @ToString @Getter @NoArgsConstructor public class MemberDTO { String name; int number; } @RestController public class HomeController { @PostMapping("/modelattribute") public ResponseEntity createMember1(@ModelAttribute MemberDTO memberDTO) { return ResponseEntity.ok(memberDTO); } @PostMapping("/requestbody") public ResponseEntity createMember2(@RequestBody MemberDTO..
· BE/Spring
영한님의 스프링 입문 강의 내용에서 아래에 내용으로 HTML화면을 전달할 수 있음을 알게 됐다. 강의에서 소개되는 과정은 대략 브라우저에서 localhost:8080:hello-mvc를 입력하면 스프링부트 내장 톰캣 서버로 전달되고 스프링 컨테이너에서 hello-template를 반환한다. 그리고 viewResolver를 통해 HTML 파일을 찾아 변환 후 전달한다는 걸 알 수 있었다. 위 과정을 디버깅을 통해 확인해 보자 @Controller public class HelloController { @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute..
E@st
학습 기록