본문 바로가기

전체 글64

Mockito는 알고 테스트 코드 작성하자 Mockito - mockito-core 5.2.0 javadoc Latest version of org.mockito:mockito-core https://javadoc.io/doc/org.mockito/mockito-core Current version 5.2.0 https://javadoc.io/doc/org.mockito/mockito-core/5.2.0 package-list path (used for javadoc generation -link option) https://javadoc.io/doc/org.m javadoc.io Mockito란? Mock을 쉽게 만들고 mock의 행동을 정하는 stubbing 로직이 실행이 되었는지 확인하기 위한 verify()를 이용이 가능하게 해주는 프레임.. 2023. 3. 24.
암호화 Bcrypt에 대한 심층 분석 글을 작성하는 이유 암호화느 서비스를 만들기 위해서는 필수로 들어가는 부분이다. 예를 들어 회원가입에서 비밀번호를 암호화를 필수로 진행을 하게 되는데 이때 Bcrypt를 이용하는 방식을 사용했다. 막상 이 부분을 코드로 구현하고 정확하게 설명을 할 수 없어 학습한 내용을 정리한다. 암호화 & 복호화 이 부분에 대해서는 자세하게 설명을 하기 보다는 간단하게 설명하고 예를 들어 이해를 하는게 좋다고 생각을 했습니다. 그러면 암호화랑 복호화에 대해 짧게 설명을 하겠습니다. 일단 암호화란 평문을 암호로 바꾸는 방식이라고 생각하면 됩니다. 예를 들어 비밀번호를 123을 입력하면 암호화 과정을 거처 평문을 암호로 바꿉니다. 지금은 기존의 숫자에 3을 더하는 방식으로 암호화를 진행하면 456으로 비밀번호가 설정이 됩.. 2023. 3. 24.
[ 서버 사이드 프로젝트 챌린지 ] 23.03.18 week 3 GitHub - mooh2jj/side-project-challenge-study: 서버 사이드 프로젝트 챌린지 스터디입니다. 서버 사이드 프로젝트 챌린지 스터디입니다. Contribute to mooh2jj/side-project-challenge-study development by creating an account on GitHub. github.com 과제 1) 이론 책 3권 선정 2) 책 1권 읽고 블로그에 북리뷰 남기기 3) 북리뷰 방식은 "가장 인상깊은 구절" & "인상깊은 기술적 인사이트"로 정리 책을 읽으면서 신경을 쓴 부분 학습에 대한 다양한 방법이 있다. 책은 하나의 수단으로 그것을 읽고 내가 배운 내용, 느낌을 정리하는 게 중요하다고 생각한다. 내가 블로그를 하면서 느끼는 부분은 .. 2023. 3. 21.
Google Java Style Guide 적용하기 스타일 가이드 컨벤션을 검색하면 다음과 같이 말한다. 스타일 가이드 컨벤션은 특정 조직, 프로젝트, 브랜드 또는 커뮤니티에서 사용되는 일관된 디자인, 문서, 코드 및 콘텐츠 스타일을 정의하는 문서입니다. 이러한 가이드 라인은 일관된 브랜드 이미지를 제공하고, 시각적 일관성을 유지하며, 더 나은 사용자 경험을 제공하는 것을 목적으로 합니다. 스타일 가이드 컨벤션은 일반적으로 로고, 색상 팔레트, 폰트, 레이아웃, 이미지 및 아이콘 사용 등과 같은 디자인 요소에 대한 가이드 라인을 포함합니다. 또한 문서, 컨텐츠 및 코드에 대한 작성 규칙 및 형식 지침도 포함됩니다. 이러한 스타일 가이드 컨벤션은 다양한 사람들이 다른 방식으로 작업하는 조직 내에서 일관성을 유지하는 데 중요합니다. 또한 새로운 사람들이 프로.. 2023. 3. 21.
코드숨 스프링 [ 15기 ] - 6주차 회고 1.이번 주에 학습한 내용 JWT를 이용해 사용자를 인증(로그인) 및 인가 처리 2. 중점적으로 학습한 부분 기존의 프로젝트를 하면서 JWT를 학습한 경험이 없어 처음에는 어려움이 있었지만 이번 주에 알게된 내용을 통하여 새로운 방식으로 로그인을 구현이 가능할거 같다. DTO에 대해서 조금 더 학습 DTO에 대해서 알아보자 DTO란 무엇인가? DTO는 "Data Transfer Object"의 약어로, 객체 지향 프로그래밍에서 데이터를 전송하기 위해 사용되는 객체를 나타냅니다. 일반적으로 DTO는 데이터베이스에서 검색된 데이터나 다른 서 pos04167.tistory.com 기존에 DTO에 대해서 학습을 했지만 Controller와 Service에 DTO에 대한 사용범위에 대해서 궁금증을 가지게 되었다... 2023. 3. 20.
[ Object Mapper] Dozer에 대해서 들어는 봤니? Dozer dozermapper.github.io Dozer란 무엇인가? Dozer는 Java 기반의 객체 매핑 도구 중 하나입니다. 객체 매핑은 서로 다른 클래스 간에 데이터를 복사하거나 매핑하는 프로세스를 의미합니다. 예를 들어, 데이터베이스에서 읽은 데이터를 Java 객체에 매핑하거나, 서로 다른 API에서 반환한 데이터를 하나의 객체로 매핑하는 등의 작업을 수행할 수 있습니다. 처음은 일단 의존성 추가하자 implementation'com.github.dozermapper:dozer-core:6.4.0' Dozer를 사용하기 이전에 코드를 한번 살펴보자 기존의 코드는 Builder를 이용하여 매핑을 하게 도와준다. 이 방식은 생성자를 통한 방식보다 정확하게 매핑에 대한 정보를 알 수 있게된다. 하.. 2023. 3. 14.
코드숨 스프링 [15기] - 5주차 회고 1. 이번 주에 학습한 내용 유효성 검사에 대해 학습을 하였다. DTO에 대해 학습 Dozer를 이용한 더 편한 Mapping Test Code 2. 중점적으로 학습한 부분 강의와 리뷰를 통하여 이제 좋은 코드의 틀을 알기 시작했다. 기존에 내가 작성하는 방식과 너무 달라 아직 코드를 작성하면서 미숙한 부분이 많았다. 그래서 이번 주는 지금까지 딱 배운 부분을 많이 작성을 해보자 생각을 하였고 강의를 많이 보고 코드에 대해 생각하는 시간을 가졌다. 코드를 왜 이렇게 작성을 했을까 생각을 해보면서 더 공부해야 되는 내용들이 생겼다. HTTP Status에 대해서 다시 공부를 하게 되었다. 기존에 내가 알고 있는 내용으로 로직이 성공하면 status_code는 OK(200)을 넘겨준다고 생각을 했다. 하지만.. 2023. 3. 12.
[ RFC ] 공식 문서를 통하여 Delete의 Status를 알아보자 글을 작성한 이유 status코드를 학습하고 성공하면 무조건 OK(200) 라는 공식이 있었다. 하지만 코드 리뷰를 받으면서 완전히 잘못 이해한 부분이 있어 이후에 복기를 하기 위해 작성한다. https://www.rfc-editor.org/rfc/rfc2616#section-9.7 RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 www.rfc-editor.org 기존에 피드백을 받았던 코드를 살펴보자 @DeleteMapping("{id}") @ResponseStatus(HttpStatus.OK) public void delete(@PathVariable Long id){ this.userService.delete(id); } 내가 이 코드를 구현을 하면서 생각한.. 2023. 3. 12.
[ Jackson ] Jackson mock 테스트 역직렬화 오류 기본적인 코드를 테스트 하면서 JSON을 파싱하는 JackSon 라이브러리를 너무 모르고 사용을 하였다. 그래서 간단한 테스트 코드를 작성을 해도 오류가 발생했다. 일단 발생한 오류를 설명하고 Jackson이 어떻게 파싱을 하고 그 이후에 어떤 행동을 하는지 알아보겠다. @PostMapping @ResponseStatus(HttpStatus.CREATED) public UserData create(@RequestBody UserData userData){ User user = userService.registerUser(userData); return UserData.builder() .email(user.getEmail()) .build(); } @Getter @Builder @AllArgsConstr.. 2023. 3. 11.
[ 서버 사이드 프로젝트 챌린지 ] 23.03.11 https://github.com/mooh2jj/side-project-challenge-study/tree/main/%EA%B9%80%EB%AC%B4%EA%B1%B4/week1 GitHub - mooh2jj/side-project-challenge-study: 서버 사이드 프로젝트 챌린지 스터디입니다. 서버 사이드 프로젝트 챌린지 스터디입니다. Contribute to mooh2jj/side-project-challenge-study development by creating an account on GitHub. github.com 1) git-flow 란 무엇인지 정리 2) git 대표적 명령어 정리 3) MySQL에서 DB 테이블 설계시 중요 요소 각 정리 챌린지) 각 개별로 드립니다. 1. Gi.. 2023. 3. 11.
코드숨 스프링[15기] - 4주차 회고 매주 회고록을 작성을 하면서 흐름이 없이 작성을 하고 있다는 생각을 가졌다. 그래서 방식을 찾던 중 3FS 방식을 찾게 되었다. http://agile.egloos.com/4122099 뒤돌아보다 agile.egloos.com FACT - 클린 아키텍쳐에 대해서 학습 - Spring Data JPA를 학습하고 과제를 구현 - Repository , DTO를 학습 - 도메인 주도 개발을 처음 시작 Feeling - 기존의 아케텍쳐에 대해 더 자세하게 알게되고 클린 아키텍쳐에 대해 학습하고 스프링을 통하여 구현을 해보니 더 명확하게 이해를 하였다. - 각 레이어의 의존 관계를 이해하며 코드를 작성을 하였다. - 작은 과제를 통하여 학습을 하였지만 조금 더 큰 과제를 해보면 좋겠다. - 테스트 코드를 중점적으.. 2023. 3. 6.
[서버 사이드 프로젝트 챌린지] 23.03.04 - OT 챌린지 https://github.com/mooh2jj/side-project-challenge-study/tree/main/%EA%B9%80%EB%AC%B4%EA%B1%B4 GitHub - mooh2jj/side-project-challenge-study: 서버 사이드 프로젝트 챌린지 스터디입니다. 서버 사이드 프로젝트 챌린지 스터디입니다. Contribute to mooh2jj/side-project-challenge-study development by creating an account on GitHub. github.com 웹개발에서 알아야 하는 server에는 4종류가 있다. 1) 클라이언트 서버(사용자) - 사용자가 웹브라우저를 통해 request 요청을 보내는 서버 2) 웹서버 - 사용자 요청하는.. 2023. 3. 5.