본문 바로가기

분류 전체보기

JPA 연관관계 매핑 양방향 매핑 아래와 같은 관계를 가지는 두 TABLE이 있다고 하자. USER와 GROUP은 다대일 관계이고, GROUP에서 USER는 일대다 관계이다. 위 두 TABLE을 JPA에서 Entity로 Mapping할때 일대다 관계의 경우 여러 건과 연관관계를 맺을 수 있으므로, Collection을 사용해야한다. JPA는 List 포함 Collection, Set, Map 등을 지원 위 관계에서 USER, GROUP Entity 예시는 아래와 같다. @Entity public class User { @Id @Column(name = "U_ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; .. 더보기
jenkins cicd react+spring boot 배포중 발생한 issue 모음 ● Install NodeJS Plugin on Jenkins 1. 브라우저를 통해 젠킨스 서버에 접속합니다. Jenkins관리 -> 플러그인 관리를 클릭합니다. 2. 설치가능 탭에서 NodeJS를 검색한뒤에 체크박스를 체크하고 "지금 다운로드하고 재시작 후 설치하기"를 클릭합니다. 3. 플러그인 설치 화면으로 이동하면 "설치가 끝나고 실행중인 작업이 없으면 젠킨스 재시작"을 체크해줍니다. 4. 설치가 완료되면 재실행하여 Jenkins관리 -> Global Tool Configuration을 클릭합니다. 5. Node JS탭에서 project에 쓸 node version을 선택합니다. 최신 버전으로 선택하고 name을 똑같이 입력해주고 저장합니다. ● Create a new Jenkins Job 6. 새.. 더보기
EC2 위에 Jenkins를 띄우고 CICD를 자동화 하는방법 👩‍💻 CI/CD 1️⃣ 구성 요소 Jenkins Server : AWS EC2 Ubuntu 18.04 Spring Boot Server : AWS EC2 Ubuntu 18.04 Github Repository Docker Hub Repository 2️⃣ 진행 순서 Jenkins Server에 Docker 설치 Jenkins Server에 Docker를 이용하여 Jenkins 실행 Jenkins 접속 Jenkins와 Github 연동 Jenkins와 Docker Hub 연결 Jenkins Server와 Spring Boot Server SSH 연결 설정 Jenkins와 Slack 연동 Jenkins Pipeline 구성 Spring Boot Project Github Repository Clone Gr.. 더보기
[Spring boot] Swagger API 연동하기 Swagger란? REST API 를 설계, 빌드, 문서화 및 사용하는데 도움이 되는 OpenAPI 사양을 중심으로 구축된 오픈 소스 도구 세트 코드 몇 줄 추가를 통해 적용하기 쉬우며, 문서 화면에서 UI를 통해 바로 API 테스트가 가능한 장점 Swagger 사용 방법 build.gradle 에 의존성 추가 : 2.9.2 버전 // build.gradle dependencies { compile('io.springfox:springfox-swagger2:2.9.2') compile('io.springfox:springfox-swagger-ui:2.9.2') } Swagger Config 설정 package com.devtest.devtest.Config; import org.springframewor.. 더보기
CrudRepository 와 JPARepository의 차이 CrudRepository CRUD 기능을 제공하는 인터페이스. org.springframework.data.repository 인터페이스 Repository를 확장함. 사용 더보기 @Repository public interface PersonRepository extends CrudRepository { // ... } CrudRepository의 메서드 long count() 가용 entity의 수를 반환함 리포지토리의 데이터 개수 확인 Delete void delete(T entity) 주어진 entity를 삭제함 entity가 null이면 IllegalArgumentException을 던짐 void deleteById(ID id) 주어진 id를 가진 엔티티를 삭제함 id가 null이면 Illeg.. 더보기
Redis 용어정리 Redis 명령어 정리 string : get hash : hgetall lists : lrange sets : smembers sorted sets : ZRANGEBYSCORE 데이터 타입에 따른 더 다양한 명령어는 Redis 공식문서 참고 key : key1, value : value1 key : key2, value : value2 키값 입력하기 set key1 value1 set key2 value2 전체 키 확인 keys * 전체 키 삭제 flushall 전체 키 확인 keys * 💻 Programming redis-cli 를 이용한 elasticache 데이터 조회 아직 redis-cli 설치가 안되어있다면 redis-cli 설치를 참고해주세요 https://minwoo-it-factory.t.. 더보기
Join문 최상단 n개를 출력 주의사항 오랜 기간 보호한 동물(1) 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INT.. 더보기
LIS(Longest Increasing Subsequence) 알고리즘 가장 긴 증가하는 부분 수열 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 122803 48389 31863 37.364% 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1 복사 6 10 20 10 30 20 50 .. 더보기