본문 바로가기

전체 글60

URL Encoding의 중요성 메이트캠퍼스에서는 회원가입시 학교명을 입력하게 되어있다 학교명은 커리어넷의 학교정보 API를 이용하여 가져온다 정확한 학교명 식별을 위해 학교정보 API부터 받아온 학교번호와 학교명이 매치되는지 확인하고 있다 증상 학교명만 검색할 때는 문제가 없었는데 간혹 학교명을 검색할 때 키워드에 캠퍼스명이 함께 포함되는 경우가 있었고 Ex) 한국폴리텍대학 항공캠퍼스 아래와 같이 요청을 보냈더니 에러가 발생하였다 https://www.career.go.kr/cnet/openapi/getOpenApi?apiKey=oooo&svcType=api&svcCode=SCHOOL&contentType=json&gubun=univ_list&searchSchulNm=한국폴리텍대학 항공캠퍼스 Caused by: java.net.URI.. 2023. 3. 10.
연관관계 - 양방향 연관관계(기본 컨셉) 단방향 연관관계에서는 1:N의 관계에서 'N'에 해당하는 Entity에 @JoinColumn 애너테이션을 이용하여 단방향 연관관계를 표현하였다. 단방향 연관관계는 한계가 존재하는데, 한 쪽 방향으로만 데이터를 조회할 수 있다 아래와 같은 테이블이 있다고 치자 관계형DB에서는 외래키인 DEPT_ID를 이용하여 Employee와 Department 양 쪽 모두 조회가능하다 하지만, 위 테이블과 매핑되는 Entity를 보자. 보기 쉽게 표현하면 아래와 같은 그림이 될 것이다 위 Entity의 경우, Employee에서는 Department 객체의 참조값을 이용해서 Department 데이터를 조회가능하지만, Department에서는 Employee의 참조값이 존재하지 않으로 Employee 조회가 불가능하다 .. 2023. 3. 7.
연관관계 - 단방향 연관관계 이 페이지에서는 JPA에서 테이블 간 관계를 어떻게 표현하는지 알아보도록 하겠다 아래와 같이 Department(부서)와 Employee(직원) 테이블이 있다고 치자. 위 테이블 간 관계를 그대로 Entity로 표현하면 아래와 같이 표현할 수 있다. Employee @Entity public class Employee{ /** 직원 id */ @Id @Column(name="EMPLOYEE_ID") private Long id; /** 직원 이름 */ private String name; /** 직원 나이 */ private Integer age; /** 부서 id */ private Long departmentId; } Department @Entity public class Department{ /*.. 2023. 2. 28.
Scope 설정 Maven에서는 pom.xml에 아래와 같이 의존성들을 추가하여 사용하는데 각 의존성에 따라, 테스트 시에만 적용할 것인지, 컴파일 시에 적용할 것인지 등 설정이 가능하다 com.h2database h2 2.1.214 설정 옵션은 아래와 같다 compile default로 적용됨 Compile 시점에 필요 프로젝트의 모든 Class Path에 추가됨 runtime Runtime(프로젝트 실행 시점)시 해당 dependency를 사용(Ex. JDBC 드라이버) Runtime, test시 Class Path에 추가됨 provided Compile 시점에 필요 Runtime 시점에 JDK 혹은 컨테이너가 dependency 제공 Wep Application 개발 시 Servlet API or Java EE A.. 2023. 2. 26.