본문 바로가기

분류 전체보기32

[Plming] 게시판 기능 코드 리뷰 6편 (알림 기능) 저번 글에서는 댓글과 관련된 코드를 살펴보았다. 이번 글에서는 알림 기능과 관련된 코드를 리뷰해볼 것이다. 알림 기능은 이 블로그를 참고해서 구현했다. 알림 기능과 관련된 코드의 폴더 구조이다. 이번에도 entity 패키지와 dto 패키지의 코드를 먼저 살펴본 뒤 repository 패키지, service 패키지, controller 패키지의 코드를 살펴볼 것이다. 1. Entity 패키지 1.1. NotificationContent 더보기 @Getter @Embeddable @NoArgsConstructor(access = AccessLevel.PROTECTED) public class NotificationContent { private static final int MAX_LENGTH = 50; @.. 2022. 4. 21.
[Plming] 게시판 기능 코드 리뷰 5편 (댓글 기능) 저번 글에서는 게시글 검색 기능 관련 코드 리뷰를 진행했다. 이번 글에서는 댓글 기능 코드를 리뷰해볼 것이다. 댓글 기능 관련 코드 폴더 구조이다. 먼저 dto 패키지와 entity 패키지에 포함되어 있는 코드들을 살펴본 뒤, 기능 별로 controller -> service -> repository 순으로 살펴볼 것이다. 1. entity 패키지 1.1. Comment 더보기 @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "comment") public class Comment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long i.. 2022. 4. 19.
[Plming] 게시판 기능 코드 리뷰 4편 (검색 기능) 저번 글에서는 게시글 신청과 관련된 코드를 리뷰해보았다. 이번 글에서는 게시판 검색과 관련된 코드들을 리뷰해보려 한다. 게시판 검색 조건은 제목, 내용, 제목+내용에 포함된 키워드를 통해 검색할 수 있으며, 카테고리, 모집 상태, 태그, 기간, 최대 참여 가능한 인원수별로 검색이 가능하다. 또한, 검색 조건이 아무것도 없는 경우에는 게시글 전체 리스트를 반환한다. 1. SearchApiController @RestController @RequestMapping("/posts") @RequiredArgsConstructor public class SearchApiController { private final SearchService searchService; @GetMapping public Respon.. 2022. 4. 15.
[Plming] 게시판 기능 코드 리뷰 3편 (신청 기능) 저번 글에서는 게시판 CRUD 기능과 관련된 코드를 리뷰해보았다. 이번 글에서는 게시글 신청, 검색 기능과 관련된 코드를 살펴보며 개발을 진행하면서 궁금했던 점과 공부해야 할 부분들을 정리해볼 것이다. 1. 게시글 신청 사용자는 게시글에 참여 신청을 할 수 있고, 게시글을 작성한 사용자는 참여를 신청한 사용자를 승인, 거절할 수 있다. 또한, 본인의 게시글에 들어갈 경우 게시글 상세 정보와 함께 현재 신청한 사용자와 참여가 승인된 참여자 목록을 보여줄 것으로 계획했기 때문에 이와 관련된 API도 필요했다. 만약 본인이 작성한 게시글이 아닌 경우에는 게시글 상세 정보와 참여가 승인된 참여자 목록만 보이도록 할 예정이다. 이제 기능별 코드를 하나씩 살펴볼 것이다. 1.1. 게시글 신청하기 게시글을 신청하려는.. 2022. 4. 14.
[Plming] 게시판 기능 코드 리뷰 2편 (게시글 CRUD 기능) 이전 글에서는 entity 패키지와 dto 패키지의 코드들을 리뷰했다. 이번 글에서는 게시글 CRUD 기능 관련 코드들을 리뷰해보려고 한다. 각 기능 별로 Controller -> Service -> Repository -> return 값 순서로 코드를 살펴보면서, 궁금한 점과 리팩터링 할 코드가 있는지 정리해볼 것이다. 게시판 CRUD와 관련된 로직은 Board, BoardRepository, BoardCustomRepository, BoardCustomRepositoryImpl, BoardApiController, BoardService 클래스에서 처리한다. 1. 게시글 생성 BoardApiController /** * 게시글 생성 */ @PostMapping public ResponseEntity.. 2022. 4. 13.
[Plming] 게시판 기능 코드 리뷰 1편 (Entity와 DTO 객체 살펴보기) 원래 계획은 기능을 하나하나 만들어가는 모든 과정을 기록하면서 진행하려고 했으나, 프론트엔드에게 API를 전달해주기로 한 날짜가 얼마 남지 않았어서 기능 개발을 먼저 완료하고 API를 전달한 뒤에 코드 리뷰를 해보려고 한다. 먼저 게시글 관련 코드의 폴더 구조이다. controller controller 패키지 안에는 Controller 클래스가 들어가 있다. Controller는 HTTP 요청을 처리하고, 브라우저에 보여줄 HTML을 뷰에 요청하거나, REST 형태의 응답 몸체에 직접 데이터를 추가하는 역할을 수행한다. BoardApiController 게시글 CRUD, 신청 기능과 관련된 Controller 클래스 SearchApiController 게시글 검색 관련 Controller 클래스 초기 .. 2022. 4. 13.
[Plming] 신청 기능 추가하기 게시글의 신청 버튼을 추가해 사용자가 참여하고 싶은 모임에 참여할 수 있도록 기능을 추가하려고 한다. 1. DB 테이블과 Entity 생성 우선 신청 정보를 담을 DB를 생성해보자. CREATE TABLE `application` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL COMMENT '사용자ID', `post_id` bigint(20) NOT NULL COMMENT '게시글ID', `status` enum("승인", "거절", "대기") NOT NULL DEFAULT "대기" COMMENT '지원상태', PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `post_id` (.. 2022. 4. 4.
[Plming] 게시글 기능 테스트 지금까지 기능 개발을 진행하면서 테스트를 계속 진행하기는 했지만, 테스트 파일 이곳저곳에서 테스트를 진행해 각 기능의 테스트 코드가 어디 들어가 있는지 파악하기 힘들었다. 따라서 application을 매핑하기 전에 그동안 개발해온 기능들도 다시 한번 테스트하고, 테스트 코드도 정리할 겸 한 번 더 기능 테스트를 하기로 결정했다. 테스트는 JUnit을 사용할 예정이다. 진행해야 할 테스트는 아래와 같다. BoardServiceTest save( ) - 게시글 등록 update( ) - 게시글 수정 delete( ) - 게시글 삭제 (실제 DB에서 삭제) deleteYn( ) - 게시글 삭제 (deleteYn의 값을 1로 변경) findAll( ) - 게시글 리스트 조회 findAllByDeletYn( ).. 2022. 4. 2.
[Chapter 1] Computer Abstractions and Technology KOCW에 공개된 영남대 최규상 교수님 컴퓨터 구조 강의를 수강 후 정리한 내용입니다! Chapter 1에서 배울 내용 프로그램이 어떻게 기계 언어로 변환되는지, 실제 하드웨어가 어떻게 명령을 실행시키는지 하드웨어/소프트웨어 인터페이스 성능을 어떻게 정의하고 향상시키는지 하드웨어 디자이너들어 어떻게 성능을 향상시키는지 Parallel processing이 무엇인지 1.1 Introduction 1. Computer Revolution 무어의 법칙에 의해 컴퓨터 기술이 급격히 발전 새로운 어플리케이션이 파생 됨 ex) 핸드폰, 자동차, 유전자 프로젝트, WWW 최근에는 모든 것이 컴퓨터화됨 2. 무어의 법칙 1965년 인텔 CEO인 골든 무어가 2년마다 하나의 칩에 들어가는 트랜지스터 수는 두 배씩 증가할.. 2022. 4. 1.
[Chapter 9] java.lang 패키지와 유용한 클래스 '자바의 정석 3rd Edition'를 공부하며 정리한 내용입니다. 1. java.lang 패키지 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하기 때문에 import문 없이도 사용 가능 1.1 Object 클래스 멤버변수는 없고 11개의 메서드만 가짐 메서드들은 모든 인스턴스가 가져야할 기본적인 것들 1. equals(Object obj) public boolean equals(Object obj){ return (this==obj); } 매개변수로 객체의 참조변수를 받아 비교하여 그 결과를 boolean값으로 알려 주는 역할 서로 다른 두 객체를 equals 메서드로 비교하면 항상 false를 결과로 얻음 이유: 두 객체의 같고 다름을 참조변수의 값으로 판단 객체를 생성할 때, 메모.. 2022. 4. 1.
728x90
LIST