목록전체 글 (101)
공유메모장
Jira API 를 이용하여 팀 Jira와 SSAIM 프로젝트를 연결하는 역할을 맡았다.이번 포스트는 프로젝트를 진행하며 만들어낸 스파게티 코드와, 이를 디자인패턴을 사용하여 확장성 있게 정리한 경험을 공유한다.1. 문제 상황 retrieve()는 Jira API를 페이지네이션하며 호출해서 결과를 모아 반환하는 메서드다.문제는 엔드포인트마다 응답 DTO가 다르다는 것이다. 이슈 조회는 JiraResponse, 스프린트 이슈 조회는 JiraSprintFindIssue를 역직렬화 대상으로 쓰는 식이다. 하나의 retrieve() 메서드가 이 모든 경우를 처리하려다 보니, 어떤 타입의 응답인지를 if-else로 분기해서 각각 파싱하는 코드가 메서드 안에 쌓이게 됐다.retrieve 메소드의 파라미터로 reqT..
2 초256 MB62542137167333.798%문제“오빠! 나 얼마만큼 사랑해?”“널 위해서라면 저기 저 하늘의 별이라도 따다 줄 수 있어. 지금 따줄까?”“에이, 거짓말!”“정말이야. 한 번 봐봐!”욱제는 하늘을 발로 차버렸다. 그랬더니 정말 별이 떨어졌다. 그런데, 정말로 별이 지구로 떨어지기 시작했다. 욱제는 지구를 지키는 정의의 용사가 되기로 결심했다.“자기야, 나 세계를 지키고 올게. 꼭 돌아올 테니 조금만 기다려줘.”지구의 파괴를 막기 위해서는 지표면에 떨어지는 별똥별의 수를 최소화해야 한다. 욱제는 커다란 네모난 L*L 크기의 트램펄린을 준비했다. 별똥별이 어디로 떨어질지는 이미 알고 있기 때문에, 욱제는 이 트램펄린으로 최대한 많은 별똥별을 우주로 튕겨낼 계획이다. 하지만 학교 예산으로..
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/157339 문제 설명다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스..
문제도시에는 N개의 빌딩이 있다.빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다.i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으로만 볼 수 있다.i번째 빌딩 관리인이 볼 수 있는 다른 빌딩의 옥상 정원은 i+1, i+2, .... , N이다.그런데 자신이 위치한 빌딩보다 높거나 같은 빌딩이 있으면 그 다음에 있는 모든 빌딩의 옥상은 보지 못한다.예) N=6, H = {10, 3, 7, 4, 12, 2}인 경우 = = = = - = = = = -> 관리인이 보는 방향 = - = = = = = = = = = 10 3 7 4 12 2 ..
JVM .java -> 컴파일 -> .class (생성) .class 파일이 byte 코드이며, jvm에서 실행될 수 있다. .class 파일만 있으면 OS에 제약없이 실행할 수 있다. JRE = JVM + Java class Library JDK = JRE + 개발 툴 JAVA는 compile 언어이기 때문에 오류 처리에 능하다. .java 파일은 모두 class 또는 interface 로 묶여야 한다. JAVA 역사인공어(중간자 역할을 하는 언어)를 착안하여 JVM이 탄생했다. JVM처럼, 브라우저 위에서 자바 코드가 동작할 수 있도록 applet 을 올렸다.이종의 네트워크가 인터넷으로 통합되어 파일(HTML)만 송수신 하다가, java가 애니메이션을 웹브라우저 위에 올렸다.- 애플릿을 포함하는..
1. spring boot 에서 해당 설정을 해줘야 exporter 를 container에 올릴 때 backend 서버에 문제가 안생김 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://url:3306/taffy?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8 username: root password: e104_taffy_best 2. docker-compose.yml services: mysql: image: mysql:8 command : --lower_case_tab..
실행1nohup java -jar /[경로]/[spring boot project.jar 파일] ex: nohup java -jar backend-0.0.1-SNAPSHOT.jar & 이것을 ec2 서버 내에서 수동으로 실행했을 때는 서버가 잘 띄워지는데, jenkins pipeline 명령어로 띄우려고 하니 nohup이 안되고 pipeline 빌드가 끝나는 동시에 spring boot project도 종료되어 버렸다. 종료 되었는지 확인하는 방법은, 위 명령어를 실행한 뒤 생성되는 nohup.out 을 봐도 좋고, ps -ef | grep jar 으로 현재 시스템에서 돌아가고 있는 .jar 파일을 봐도 좋다. jenkins pipeline이 빌드 종료 되는 동시에 꺼지는 것이기 때문에 , 임의로 sle..