문제 파악하기 https://school.programmers.co.kr/learn/courses/30/lessons/64062 위의 문제를 요약하면 다음과 같다. 사람들이 징검다리를 건너는데 모든 돌을 한번씩 밟아야 하고, 돌을 밟을 때 돌을 밟을 수 있는 횟수
https://school.programmers.co.kr/learn/courses/30/lessons/154540?language=java2차원 배열이 존재하고 섬을 숫자들이 상하좌우로 인접한 경우에 인접한 숫자들의 모음을 섬으로 정의한다. 이 때 각 섬들의
jacoco 사용시 특정 클래스를 커버리지 테스트에서 제외하고 싶었는데 잘 되지 않았다. 이것을 적용하려고 했는데 실제 결과에는 제외되지 않고 커버리지를 측정했다. 그래서 제외시킬수 있는 방법을 찾아야 했다. 그리고 롬복으로 생성된 코드 역시 커버리지 분석을 하기 때문
학습 동기 개발 과정에서, 백엔드 API 요청 시 응답이 때때로 느려지는 문제에 직면했다. 일반적으로 응답 시간은 100ms 이내였고, 데이터 요청이 많을 경우에도 200ms ~ 300ms 범위 내에 있었다. 그러나 가끔 (예상보다 더 자주) 700ms 이상의 응답
https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=java위 문제는 주어진 리스트의 숫자들을 합쳤을 때 가장 큰 수가 되도록 구하는 문제이다. 그리고 숫자 형태의 문자열로 출력해야
https://school.programmers.co.kr/learn/courses/30/lessons/17679프렌즈 4블록문제는 구현 문제이다. 다음은 프렌즈 4블록 문제를 풀기 위해서 구현해야 목록이다.block을 수정 가능한 2차원 배열 형태로 만든다.
프로젝트를 진행하면서 서비스 로직의 수행시간과 에러 또는 경고에 대한 로그 정보를 얻어오고 관리하고 싶었다. 이를 위해서 logback의 상세 정보를 수정하고 관리하기 위해 logback-spring.xml을 추가하고 configuration 정보를 추가했다. 그러나
특정한 시간이나 특정 시간 마다 어떤 작업을 자동으로 수행하고 싶을때 사용하는 명령어가 Cron이다. Cron은 특정 시간에 특정 작업을 수행하는 스케줄링 역할을 한다.Cron은 리눅스에만 있는 개념은 아니다.작업을 하다보면 본인이 직접 매번 체크하고 해줘야 하는 작업
이번에 카드 엔티티의 질문(Question) 속성과 설명(Description) 속성의 허용 길이를 늘려달라고 부탁받았다. Description의 경우 원래 CLOB이기에 큰 문제 없었지만 질문속성의 경우 VARCHAR2(2000)으로 정의되어있었다. 이를 5만자로 허
실제 만든 서비스를 이용하려고 하니 도커로 인스턴스 서버에 생성한 DB가 불안했다. 그 이유는 MySQL 이미지를 컨테이너로 띄우면 메모리를 700M 정도 잡아먹는데 여기에 nginx, application server까지 띄우니 1GB 사용을 뛰어 넘는다. 결국 메모
이펙티브 자바를 보면 매서드에 입력되는 매개변수 인자도 validation을 하라고 한다. 그러면 메서드를 더욱 안정적으로 사용할 수 있다. 보통은 Null 관련해서 체크를 많이 할 것이다. 매서드 매개변수를 validation하는 것은 여러가지가 있다.assert 이
직접 이미지를 Spring 서버에 입력하는 것은 몇가지 문제점이 존재한다.용량 및 대역폭 문제이미지는 일반적인 json과 같은 데이터에 비해 용량 사이즈가 크다. 그렇기에 직접 업로드하는 방식은 서버 용량도 많이 차지할 뿐만 아니라 대역폭에도 신경써야 한다. 클라우드
외부 API 적용해야 하는 문제 카드 문제를 풀면 그때의 카드 상태와 점수를 채점해서 카드 결과를 리턴하는 API를 설계해야 했다. 이 때 구현해야 하는 로직은 다음과 같다. 채점은 카드 타입에 따라 분류되고 서술형 카드의 경우 형태소 분리를 통해 키워드를 분리하여
이번에 어플리케이션 서버에서 형태소를 분석해서 점수를 매기기 위해서 형태소 분석을 외부 API로 부터 호출하기로 했다. 문제는 WebClient로 호출할 API의 응답형태는 다음과 같았다.이러한 형태를 받기위해 NlpToken이라는 타입을 만들었다.그리고 이 타입을 응
객체의 타입을 확인하는 데는 instanceof를 활용하면 쉽게 파악할 수 있다. 기본적으로 instanceof는 타입을 확인하는데 공변이 적용된다. 그래서 A instanceof B 라고 한다면 A는 B와 같은 타입이거나 하위타입입니까? 물어보는것과 같다.이런 코드가
@Transactional 공부 계기 Transactional은 보통 서비스 레이어에서 메서드에 관용적으로 사용한다. 조회만하는 경우 readOnly=true로 설정하기도 하고 경우에 따라 세부적인 내용을 적용한다. 이번에 Transactional을 분석하려는 이유
회원 정보 수정을 요청하는 API를 만들었는데 DB에 수정사항이 반영되지 않는 이슈가 있었다. 문제의 코드는 다음과 같다.null을 체크하고 null 아니면 해당 속성을 업데이트한다. 이때 save 요청을 하지 않은 이유는 인자로 가져온 엔티티가 영속화 상태일 것이라
API 문서 자동화의 필요성 API 문서를 사용하다 보면 실수할 일이 많다. 나의 경우에는 토이 프로젝트를 하면서, API를 실시간으로 업데이트하지 않고 수작업으로 입출력 관련 json 포맷을 직접 만들어야 하기 때문에 실수할 여지가 많았다. 그리고 팀원과 함께 토