전체 글 224

[TIL] Jackson, Controller, DTO, JDBC

Jackson Jackson은 `JSON` 데이터 구조를 처리해주는 라이브러리이다. Object를 JSON 타입의 String으로 변환해줄 수 있다. 반대로 JSON 타입의 String을 Object로 변환해줄 수 있다. Spring은 3.0버전 이후로 `Jackson`과 관련된 API를 제공함으로써, 직접 코드를 작성하여 JSON 데이터를 처리하지 않아도 자동으로 처리해주고 있다. 직접 처리해야 할 때는 Jackson 라이브러리의 `ObjectMapper`를 사용하면 된다. Object To JSON @Test @DisplayName("Object To JSON : get Method 필요") void test1() throws JsonProcessingException { Star star = new..

기타/개발일기 2024.01.18

[TIL] Gradle, Tomcat, 테스트 코드, Lombok, Spring MVC, 정적 및 동적 페이지

Gradle Gradle은 작성한 Java 코드를 설정에 맞게 자동으로 빌드해 주는 빌드 자동화 시스템이다. Build란 소스 코드를 실행 가능한 결과물로 만드는 일련의 과정 `(java -> jar)` build.gradle build.gradle은 Gradle 기반의 빌드 스크립트이다. 이 스크립트를 작성하면 소스 코드를 빌드하고 라이브러리들의 의존성을 쉽게 관리할 수 있다. 개발을 하면서 필요한 외부 라이브러리들을 `dependencies` 부분에 작성하면 Gradle이 해당 라이브러리를 Maven Repository와 같은 외부 저장소에서 자동으로 다운로드해온다. 다른 라이브러리들과의 의존성을 자동으로 관리해 주기 때문에 라이브러리들간의 충동 걱정없이 개발에만 집중할 수 있다. Gradle이 다운..

기타/개발일기 2024.01.17

프로그래머스 python 체육복

[level Lv.1] 체육복 - 42862 문제 링크 성능 요약 메모리: 10.1 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > 탐욕법(Greedy) 채점결과 정확성: 100.0 합계: 100.0 / 100.0 제출 일자 2024년 1월 3일 12:31:10 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업..

프로그래머스 python 숫자 짝꿍

[level Lv.1] 숫자 짝꿍 - 131128 문제 링크 성능 요약 메모리: 10.1 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > 연습문제 채점결과 정확성: 100.0 합계: 100.0 / 100.0 제출 일자 2024년 1월 2일 18:27:59 문제 설명 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 ..

프로그래머스 python 기사단원의 무기

[level Lv.1] 기사단원의 무기 - 136798 문제 링크 성능 요약 메모리: 10.2 MB, 시간: 1.84 ms 구분 코딩테스트 연습 > 연습문제 채점결과 정확성: 100.0 합계: 100.0 / 100.0 제출 일자 2024년 1월 5일 21:46:30 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단..

[백준 python 1021] 회전하는 큐

[Silver III] 회전하는 큐 - 1021 문제 링크 성능 요약 메모리: 34036 KB, 시간: 64 ms 분류 자료 구조, 덱 제출 일자 2024년 1월 15일 16:59:54 문제 설명 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, ..

[백준 python 5430] AC

[Gold V] AC - 5430 문제 링크 성능 요약 메모리: 43224 KB, 시간: 180 ms 분류 덱, 파싱, 구현, 문자열, 자료 구조 제출 일자 2024년 1월 15일 19:00:57 문제 설명 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 ..

[백준 python 1406] 에디터

[Silver II] 에디터 - 1406 문제 링크 성능 요약 메모리: 37440 KB, 시간: 248 ms 분류 자료 구조, 연결 리스트, 스택 제출 일자 2024년 1월 12일 13:03:03 문제 설명 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다. 이 편집기가 지원하는 명령어는 다음과 같다. ..

원격 저장소에 있는 브랜치 가져오기

원격저장소에는 있는 브랜치가 로컬에서 브랜치를 확인해보니 없다? 원격 저장소 브랜치 업데이트하기 git remote update 이 명령어를 통해 원격 저장소에 있는 브랜치를 업데이트한다. 원격 저장소에 있는 브랜치 확인 git branch -r 이렇게 하면 원격 브랜치의 목록을 다 알려준다. 브랜치 가져오기 git checkout -t origin/브랜치명 `git branch -r`을 하면 대부분 `origin/브랜치명` 형식으로 되어 있을거다. 거기서 사용할 브랜치를 입력하면 된다.

기타/Git 2024.01.11

[TIL] 모던 자바(Java 8)

모던 자바 : 자바 8 변경점 자바는 진화하는 언어이며, 가장 큰 진화는 Java 8에서 이루어졌다고 한다. 함수형 프로그래밍 함수를 일급 값으로 프로그래밍에서 지원하는 모든 연산을 지원하고 있고, 이러한 연산을 모두 지원하는 “값”들을 일급 시민, 또는 일급 객체라고 한다. 하지만 특정한 연산을 지원하지 않는 값이기 때문에 메서드는 이급 시민으로 볼 수 있다. 결론 : Java 8에 메서드 참조 기능이 도입되었다. 람다 : 익명 함수 람다는 익명함수를 지칭하는 말 익명함수란 말 그대로 이름이 없는 함수를 뜻하며, 일급 객체로 취급 함수를 값으로 사용 할 수도 있으며 파라미터에 전달 변수에 대입 하기와 같은 연산들이 가능 Javascript ES6의 Arrow function과 같다. 스트림 스트림은 데..

기타/개발일기 2024.01.05