채용공고 작성 기능
Owner 권한으로 로그인시 본인의 가게를 등록하고, 원하는 채용공고를 작성하는 기능을 추가
공고내용에서 개개인의 특성을 나타내는 해시태그 형태의 특성을 추가해서 구직자간에 매칭이 가능하도록 해주었다.
그리고, 채용 공고를 하나의 테이블로 관리하여 해당 채용 공고에 지원한 사람과 특정 유저가 지원한 공고들에 대해 연관관계매핑이 될수있도록 테이블을 분리하여 별도로 보관하였다.
채용 공고의 항목들을 지원자의 이력서의 양식과 일치시키기위해 정규식을 사용해서 이력서의 항목들과 일치시켰다.
이렇게 함으로써 채용 공고 - 이력서간 연관도가 증가하여 다양한 조건에서 매핑을 통해 원하는 조건의 공고,이력서를 찾을수있다.
JPA 페이징처리를 사용하여 정렬 및 페이징처리
User는 올라온 채용 공고를 확인할수있는데, 원하는 지역,업종,시간대를 필터로 추려내어 검색함과 동시에
페이징처리를 하기위해 JPA 페이징을 사용하였다.
검색 조건을 선택하지않으면 모든 공고를 담은 Page<Employment>가 반환되고,
특정 조건들을 선택하면, JPA의 And&OR 문법을 통해 원하는 조건에 해당하는 채용 공고들만 볼수있도록 설정하는 작업이 까다로웠다.
JPA의 검색 메소드에서 And와 Or을 섞어서 사용하고싶었는데, 해당 문법은 지원하지않는다고하여 불필요하게 분기처리를 하게되었는데, 직접 쿼리문을 짠다면 한번에 가능할것같기도 하다.
페이징처리를 위해 Pageable 객체를 파라미터에 담아줌으로써 클라이언트에서 이에따른 페이징 처리가 가능하게 하였고,
부트스트랩의 페이지네이션 모듈을 사용하여 간편하게 페이징 처리를 완료하였다.
User가 채용 공고에 지원하게되면, 채용 공고 - 이력서간 테이블에 아래와 같이 담기게되고
엔티티상에서 List<Resume> resumes와 List<Employment> employments로 다대다-양방향 매핑관계를 가지고 꺼내서 사용할수있는데,
일반적으로 다대다 관계를 잘 사용하지않는다고한다.
실제로 사용해보니 매번 해당 엔티티의 List를 탐색해야하는 번거로움이있었다.
다대다 관계를 사용하지않고 일대다 관계로 바꾸어 나타내려면 테이블 구조를 변경시켜야할것같다.
다음으로는 스프링 시큐리티를 사용하여 Oauth2.0을 통해 소셜로그인 기능을 구현해볼예정이다.
'Category > Project' 카테고리의 다른 글
[개인프로젝트] 13일차 - 제이쿼리,자바스크립트 (0) | 2024.02.28 |
---|---|
[개인프로젝트] 11일차 - 스프링시큐리티+OAuth2 소셜로그인 (0) | 2024.02.27 |
[개인프로젝트] 6일차 - JPA 다대다 테이블 매핑 순환참조 문제 (0) | 2024.02.22 |
[개인프로젝트] 5일차 - 카카오 주소 api를 사용해서 네이버 map api 표현하기 (0) | 2024.02.22 |
[개인프로젝트] 3일차 - 시큐리티 + JWT 토큰을 통한 인증 (0) | 2024.02.20 |