1. 로그인 페이지 기능 테스트 (1) 로그인 페이지 테스트 이전에 springsecurity의 의존성을 미리 설정을 해두었다. 새로운 시큐리티 설정 방법은 공식 문서에서도 찾아볼 수 있다. https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter 관련 테스트는 모든 요청에 대해 인증이 열리도록 설정한 것이다. 이때 Auto configuration 설정이 이동되어서 http에 빨간 밑줄이 생긴다. localhost:8080/login에서 로그인 페이지가 잘 작동되고 있는지 확인할 수 있다. 보장되는 기능이기 때문에 최소한의 테스트만 해도 괜찮다. (2) GitKraken을 사용하여 깃프로젝트 정리 ..
1. 게시판 페이지 세부 기능 (1) 게시판 페이지에 구현될 기능 검색 기능 게시글 항목 클릭 시 페이지로 이동 기능 페이지네이션 기능 홈으로 이동 기능 (게시판 페이지로 리다이렉션) 정렬 기능 (제목, 해시태그 등으로 정렬) (2) 구현 및 테스트 작성 service 디렉토리 생성하고, 그 안에 ArticleService class 생성한다. ctrl + shift + t를 사용하면 해당 클래스에 대한 테스트가 test 디렉토리 안 대칭되는 위치에 바로 생성된다. 이렇게 생성한 테스트는 스프링부트의 슬라이싱 테스트 기능을 사용하지 않아 스프링부트가 로딩되는 시간을 단축할 수 있게 되는 것이다. 대신 도킹을 하는 방법(mockito)으로 의존성을 해결한다. @ExtendWith(MoockkitoExten..
오늘은 하반기 시즌을 맞이해서 자소서 작성 팁을 얻고자 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online 강의에서 Part 11 IT 대기업 이직을 위한 팁 파트를 수강하였다. 가장 먼저 눈에 들어온 것은 "회사는 꿈을 이뤄주는 곳이 아니다"라는 멘트였다. 좋은 IT 회사에 가도 노력을 해야만 성장하는 것이지 단순히 업무만 한다고 해서 성장하는 것은 아니라고 한다. 꼭 좋은 대학에 가도 내가 노력을 해야 좋은 직장을 갈 수 있게 되는 것과 같은 말인 것 같이 느껴졌다. [ 지원 동기의 함정 ] 회사는 단순히 불평불만만 하는 지원자를 굳이 뽑지 않는다. 지원자의 능력을 회사의 발전을 위해 사용하고 그에 합당한 보상을 받는 것이다. 뛰어난 능력을 갖춘 사람을 뽑고 싶..
1. 로그인 페이지 (1) 이전 시간 branch 작업 깃허브 branch 전략 1 새로운 branch가 복사된 것처럼 생성되었는데 merge는 되지 않은 상태로 보이는 것 : 깃허브 전략 rebase & merge 즉, 티가 안 나게 merge를 해준 것이다. 팀에 따라서 깔끔한 전략을 쓸 것인지 모든 기록을 남길지 선택할 수 있다. 깃허브 branch 전략 2 내가 작업하는 사이에 다른 팀원의 작업이 merge까지 일어났을 때, 문제 해결 방법 (다른 팀원의 내용까지 내가 반영하고 있는 것이 좋을 것이다.) 만약 내 작업까지 remote push가 되어 있다면, main branch를 merge 받아와야 한다. 만약 remote push를 안 했다면, feature branch를 main으로 reba..
1. 게시판 페이지 생성 html 파일들은 main > resources > templates 안에 넣어주면 된다. (1) 기본 페이지 생성 templates > articles 아래 index.html 파일을 생성한다. lang = "ko" title: 게시판 페이지 body에는 헤더, 메인페이지(테이블), 푸터를 넣을 것이다. sementic tag 참고 검색창은 form 태그로 작성한다. 보여주고 싶지 않은 부분은 hidden 처리를 해준다. 제목, 본문, ID, 닉네임, 해시태그 옵션을 라벨로 주어준다. 검색어를 input으로 받는다. submit 버튼을 넣는다. 테이블 태그를 사용하여 게시글 리스트를 보여준다. 여기에는 제목, 해시태그, 작성자, 작성일을 넣어준다. 이때, 은 row , 는 co..
1. API 구현 (1) 검색 build.gradle에 queryDSL 설정 추가 (https://github.com/djkeh/fastcampus-project-board/blob/main/build.gradle 참고) // queryDSL 설정 implementation "com.querydsl:querydsl-jpa" implementation "com.querydsl:querydsl-core" implementation "com.querydsl:querydsl-collections" annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // que..
1. 데이터 베이스 접근 로직 3 (1) 데이터 베이스 접근 로직 구현 (이어서) 임시로 localhost에서 잘 작동하는지도 확인할 수 있다. application.yaml 기존의 datasource 아래 내용을 주석 처리하고, 아래 코드를 추가한다. url: jdbc:h2:mem:testdb username: sa driver-class-name: org.h2.Driver 다시 실행했을 때, H2로 연결된 것을 확인할 수 있고, local에서 테스트할 수 있다. 사용하진 않을 것이기 때문에 다시 원상복구 해줘야 한다. Article과 ArticleComment에는 동일하게 create와 last 날짜, 사용자 정보가 들어있는데 이를 묶어줄 수 있다. domain > 우클릭 > java class 생성..