💸딱 하루, 인프런 천원샵 오픈!

[인프런 워밍업클럽 백엔드 3기] 2주차 발자국

💻강의 수강


<백엔드>

[실습] 데이터베이스 초기화
[실습] 리포지토리 개발[실습] 리포지토리 테스트 코드 작성
[실습] 리포지토리 성능 개선[실습] 클래스 생성
[실습] DTO 개발
[실습] 리포지토리 개발
[실습] 서비스 개발
[실습] 서비스 테스트 코드 작성[실습] 컨트롤러 개발
[실습] 컨트롤러 테스트 코드 작성

<프론트엔드>
[실습] Thymeleaf - 부트스트랩 템플릿
[실습] Thymeleaf - 템플릿 수정(index)
[실습] Thymeleaf - 템플릿 수정(resume)
[실습] Thymeleaf - 템플릿 수정(projects)
[실습] Thymeleaf - 템플릿 수정(레이아웃)
[실습] 인터셉터 개발

 

💻오류..


<1주차 강의 진도>

  • [개발] 리포지토리 테스트코드 작성

    • testFindAllByIsActive 테스트코드 실행 오류

      image테스트코드 내부의 experiences의 size 값이 계속 0으로 나와 코드를 점검하였는데, imageExperience 엔터티의 addDetails 메소드의 매개변수명으로 details가 아닌 detail이 들어가 있어 함수 내부의 details와 매칭이 되지 않아 addDetails 함수가 제대로 작동하지 않았고, 그래서 Experience 배열의 한개의 Experience 인스턴스 아래의 ExperienceDetail 배열에 값이 추가되지 않았던 것이었다... 30분동안 이곳저곳 찾아보다가 도저히 찾지못해 멘붕 오기 직전 다시 한번 작성한 코드 전부를 단어 단위로 하나하나 꼼꼼하게 읽었는데, 저 곳에 s 하나가 빠져있던걸 깨닫고 벙쪘었다. 역시 개발자는 자나깨나 오타를 조심해야한다

       

 

💟미션


이번주 과제는 본격 개발.. REST API 작성과 조회 API 구현이다

 

<3/10 월 미션3 REST API 작성>

  • 처음엔 분명 학생-소속학과-학과 이렇게 세 엔터티로만 할 예정이었는데.. 내가 학사 시스템에서 가장 많이 쓰는 수강신청 기능(개설강의조회, 신청, 삭제)을 구현하려다 보니 강의-수강강의가 필요했고 강의에 교수 정보도 들어가야 하니 교수 엔터티도 추가해야 했다.

  • 이 시스템의 로그인을 생각하며 학생의 정보는 어느 시점에 들어가야하나? 를 고민했는데 보통 학생의 정보는 학생이 원서를 넣을때 거의 모든 정보가 들어간다는 걸 떠올리고 원서 테이블마저 만들게 되었다.😑

  • 원서 데이터가 학생 데이터로 옮기는 시점 또한 고민이 되었는데, 이 때문에 관리자 기능도 필수가 되었다. 원서를 조회하고 합격자(본격적으로 하려면 합격자 산정 로직을 넣어야 할 것 같은데 이건 이 미니미니 프로젝트를 사이드 사이즈로 키울 결심히 들 때..?)를 합격 상태로 바꿨을 때가 그 시점이다.

  • 그리고 여기서 1안 2안이 나뉘는데, 우선 1안은 상태를 합격으로 바꾸면서 트랜잭션 처리 넣어 동시에 학생 테이블로 데이터가 옮겨진다. 그러면 학생이 합격자 발표 조회를 했을때 학생 테이블에 자기 정보가 있다면 합격 조회되고 put으로 비밀번호만 만들어서 로그인하기. 2안은 관리자는 원서 상태만 합격으로 바꾸고 학생이 합격자 발표 후 자기 원서의 상태가 합격이라면 그 때 비밀번호만 받으면서 학생 테이블에 원서 테이블의 모든 정보 옮겨적기

  • 시점의 문제고 성능과 효율성은 분명 비슷할 것 같은데.. 이런 쓸데없는게 제일 고민된다. 😂😂

image

이런 느낌이 되었다

 

<3/13 목 미션4 조회 REST API 만들기>

  • 이번주 너무 바빠서 관리자모드 - 강의 조회 하나를 겨우 만들었다. 자바만 쭉 쓰다가 오랜만에 정석으로 dto로 포장하고 jpa로 개발하려니 여기저기 실수가 많아 달랑 이거하는데 오류 잡느라 시간이 많이걸렸다 게다가 타임리프도 하도 오랜만에 쓰니 하나도 기억이 안나 강의 열심히 들으며 만들었다. css 너무 싫다

image

  • 완성 화면은 이런 느낌....... 템플릿은 포트폴리오에서 쓴 거 재사용했다 ; admin 템플릿을 다 가져오기엔 너무 사이즈가 크고 그정도까진 사용되지 않기때문에 ; ;

  • null은 교수아이디와 학과아이디인데 아직 강의에 학과, 교수 테이블 조인을 안걸어서 우선은 null로 처리함

 

댓글을 작성해보세요.


채널톡 아이콘