전체 글
무지했던 지난 날에 대한 속죄의 기록
-
간혹 비즈니스 로직이나 스케줄러 + 페이지 이렇게 2개의 프로젝트를 구현해야 하는 경우가 생기곤 한다. IntellJ 에서 각각을 실행시키고 관리도 별도로 진행해야 하기 때문에 항상 번거로움이 생긴다. 이를 효과적으로 관리하고 추후에도 다른 용도로도 도움이 될 것 같아, 현재 진행하는 프로젝트는 멀티 모듈로 구현하고 이 과정을 기록한다. 🟢 멀티 모듈Spring Boot에서 멀티 모듈 프로젝트는 하나의 큰 프로젝트를 더 관리하기 쉽고 모듈화된 여러 하위 프로젝트로 나누는 것을 의미한다. 이 접근법은 각 모듈이 독립적으로 개발되고 관리될 수 있도록 해서, 대규모 애플리케이션의 복잡성을 줄이고 유지보수를 용이하게 만들 수 있다. 각 모듈은 특정 비즈니스 로직이나 데이터베이스 작업, 서비스 API 등을 처리..
[Spring] Spring Boot 에서 멀티 모듈 구현간혹 비즈니스 로직이나 스케줄러 + 페이지 이렇게 2개의 프로젝트를 구현해야 하는 경우가 생기곤 한다. IntellJ 에서 각각을 실행시키고 관리도 별도로 진행해야 하기 때문에 항상 번거로움이 생긴다. 이를 효과적으로 관리하고 추후에도 다른 용도로도 도움이 될 것 같아, 현재 진행하는 프로젝트는 멀티 모듈로 구현하고 이 과정을 기록한다. 🟢 멀티 모듈Spring Boot에서 멀티 모듈 프로젝트는 하나의 큰 프로젝트를 더 관리하기 쉽고 모듈화된 여러 하위 프로젝트로 나누는 것을 의미한다. 이 접근법은 각 모듈이 독립적으로 개발되고 관리될 수 있도록 해서, 대규모 애플리케이션의 복잡성을 줄이고 유지보수를 용이하게 만들 수 있다. 각 모듈은 특정 비즈니스 로직이나 데이터베이스 작업, 서비스 API 등을 처리..
2024.05.22 -
Intro 여러 데이터베이스를 다룰 때, 스키마를 설계하는 것은 중요한 요소다. 최근에도 ORM 을 설계할 때, 정규화를 무시한 경우도 있었다. 이에 대해 보다 자세히 다뤄보기 위해 위 글을 작성한다. 🟢 정규화(Normalization)데이터베이스 정규화(Normalization)는 데이터베이스 설계를 최적화하기 위해 데이터를 구조화하는 과정이다. 이 과정은 테이블 간에 데이터의 중복을 최소화하고, 데이터 무결성(Integrity)을 유지하기 위해 실시하며, 데이터베이스의 저장 용량 또한 줄일 수 있다. 정규화를 통해 데이터 모델의 일관성을 유지하고, 업데이트 시 발생할 수 있는 오류를 줄일 수 있다. 일반적으로 여러 단계의 정규형이 있으며, 각 단계는 특정한 이상 현상을 제거하는 데 중점을 둔다...
[Database] 데이터베이스 정규화에 대하여Intro 여러 데이터베이스를 다룰 때, 스키마를 설계하는 것은 중요한 요소다. 최근에도 ORM 을 설계할 때, 정규화를 무시한 경우도 있었다. 이에 대해 보다 자세히 다뤄보기 위해 위 글을 작성한다. 🟢 정규화(Normalization)데이터베이스 정규화(Normalization)는 데이터베이스 설계를 최적화하기 위해 데이터를 구조화하는 과정이다. 이 과정은 테이블 간에 데이터의 중복을 최소화하고, 데이터 무결성(Integrity)을 유지하기 위해 실시하며, 데이터베이스의 저장 용량 또한 줄일 수 있다. 정규화를 통해 데이터 모델의 일관성을 유지하고, 업데이트 시 발생할 수 있는 오류를 줄일 수 있다. 일반적으로 여러 단계의 정규형이 있으며, 각 단계는 특정한 이상 현상을 제거하는 데 중점을 둔다...
2024.05.15 -
다양한 알고리즘을 접하며 우선순위 큐를 종종 사용하곤 한다. 항상 정렬된 상태를 유지하고는 있는데 이게 어떠한 방식으로 돌아가는 지 파악하기 위해 이 글을 작성한다. 우선순위 큐와 관련된 힙에 대한 내용도 담아보자. 🟢우선순위 큐 (PriorityQueue)큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐(Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조이다.우선순위 큐는 일반적으로 힙(Heap)을 이용하여 구현한다 💡 힙(Heap)이란 ?힙(Heap)은 우선순위 큐를 위해 고안된 완전이진트리 형태의 자료구조이다. 여러 개의 값 중 최댓값 또는 최솟값을 ..
[Java] 우선순위 큐의 우선순위는 어떻게 지정할 수 있는가다양한 알고리즘을 접하며 우선순위 큐를 종종 사용하곤 한다. 항상 정렬된 상태를 유지하고는 있는데 이게 어떠한 방식으로 돌아가는 지 파악하기 위해 이 글을 작성한다. 우선순위 큐와 관련된 힙에 대한 내용도 담아보자. 🟢우선순위 큐 (PriorityQueue)큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐(Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조이다.우선순위 큐는 일반적으로 힙(Heap)을 이용하여 구현한다 💡 힙(Heap)이란 ?힙(Heap)은 우선순위 큐를 위해 고안된 완전이진트리 형태의 자료구조이다. 여러 개의 값 중 최댓값 또는 최솟값을 ..
2024.05.02 -
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🇱🇻3️⃣, 합승 택시 요금[72413] 🧀 프로세스 [문제 설명]밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져 택시를 더 많이 이용하게 되어 택시비를 아낄 수 있는 방법을 고민하고 있습니다. "무지"는 자신이 택시를 이용할 때 동료인 어피치 역시 자신과 비슷한 방향으로 가는 택시를 종종 이용하는 것을 알게 되었습니다. "무지"는 "어피치"와 귀가 방향이 비슷하여 택시 합승을 적절히 이용하면 택시요금을 얼마나 아낄 수 있을 지 계산해 보고 "어피치"에게 합승을 제안해 보려고 합..
[Java][프로그래머스] 72413, 합승 택시 요금프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🇱🇻3️⃣, 합승 택시 요금[72413] 🧀 프로세스 [문제 설명]밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져 택시를 더 많이 이용하게 되어 택시비를 아낄 수 있는 방법을 고민하고 있습니다. "무지"는 자신이 택시를 이용할 때 동료인 어피치 역시 자신과 비슷한 방향으로 가는 택시를 종종 이용하는 것을 알게 되었습니다. "무지"는 "어피치"와 귀가 방향이 비슷하여 택시 합승을 적절히 이용하면 택시요금을 얼마나 아낄 수 있을 지 계산해 보고 "어피치"에게 합승을 제안해 보려고 합..
2024.05.02 -
Intro 알고리즘을 풀이하며 정적 변수, static 을 많이 사용하곤 한다. 이에 대한 정확한 의미에 대해 알아보고 분석해 보고자 글을 작성한다. 🟢 정적(static)자바에서 static 키워드는 클래스 레벨의 변수나 메소드, 블록을 정의할 때 사용된다. 이는 인스턴스 생성 없이도 접근 가능하며, 모든 인스턴스에서 공유된다. static 변수는 프로그램이 시작할 때 메모리에 할당되고 프로그램이 종료될 때까지 유지된다. 왜냐하면 static 멤버는 클래스가 로드될 때 메모리의 메소드 영역에 할당되기 때문이다. 이는 모든 인스턴스가 공유하는 특성 때문에 유용하게 사용될 수 있다. 예를 들어, 어떤 클래스의 인스턴스들이 공통적으로 사용해야 하는 값을 static 변수로 선언할 수 있다. 하지만, sta..
[Java] 정적(static) 이란 무엇인가Intro 알고리즘을 풀이하며 정적 변수, static 을 많이 사용하곤 한다. 이에 대한 정확한 의미에 대해 알아보고 분석해 보고자 글을 작성한다. 🟢 정적(static)자바에서 static 키워드는 클래스 레벨의 변수나 메소드, 블록을 정의할 때 사용된다. 이는 인스턴스 생성 없이도 접근 가능하며, 모든 인스턴스에서 공유된다. static 변수는 프로그램이 시작할 때 메모리에 할당되고 프로그램이 종료될 때까지 유지된다. 왜냐하면 static 멤버는 클래스가 로드될 때 메모리의 메소드 영역에 할당되기 때문이다. 이는 모든 인스턴스가 공유하는 특성 때문에 유용하게 사용될 수 있다. 예를 들어, 어떤 클래스의 인스턴스들이 공통적으로 사용해야 하는 값을 static 변수로 선언할 수 있다. 하지만, sta..
2024.04.29 -
모던 php 를 사용할 때는 다양한 타입을 지원했고 따로 명시해 줄 필요도 없었다. Java를 다루면서 데이터 형식을 명확히 해야하고 이에 대한 규제가 정확했다. 이에 대해 정확히 알아보고자 이 글을 작성한다.🟢 제네릭(Generic)제네릭(Generic)는 '일반적인', ' 데이터 타입을 일반화함'이라는 뜻이다. 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시 미리 지정한다고 이해할 수 있다. 우리가 어떠한 자료구조를 사용한다고 가정해보자, List, Queue, LinkedList 와 같은 것들. String 타입 뿐만 아니라 Integer 타입도 지원하고 싶은 경우에 타입 별로 클래스나, 변수들을 생성하진 않을 것이고 이는 비효율적이다. 이러한 문제를 해결하기 위해 우리는 제네릭이라는 것..
[Java] 제네릭(Generic) 은 무엇인가모던 php 를 사용할 때는 다양한 타입을 지원했고 따로 명시해 줄 필요도 없었다. Java를 다루면서 데이터 형식을 명확히 해야하고 이에 대한 규제가 정확했다. 이에 대해 정확히 알아보고자 이 글을 작성한다.🟢 제네릭(Generic)제네릭(Generic)는 '일반적인', ' 데이터 타입을 일반화함'이라는 뜻이다. 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시 미리 지정한다고 이해할 수 있다. 우리가 어떠한 자료구조를 사용한다고 가정해보자, List, Queue, LinkedList 와 같은 것들. String 타입 뿐만 아니라 Integer 타입도 지원하고 싶은 경우에 타입 별로 클래스나, 변수들을 생성하진 않을 것이고 이는 비효율적이다. 이러한 문제를 해결하기 위해 우리는 제네릭이라는 것..
2024.04.26 -
🇱🇻3️⃣, 연속 펄스 부분 수열의 합[161988] 🧀 프로세스 문제 설명 어떤 수열의 연속 부분 수열에 같은 길이의 펄스 수열을 각 원소끼리 곱하여 연속 펄스 부분 수열을 만들려 합니다. 펄스 수열이란 [1, -1, 1, -1 …] 또는 [-1, 1, -1, 1 …] 과 같이 1 또는 -1로 시작하면서 1과 -1이 번갈아 나오는 수열입니다. 예를 들어 수열 [2, 3, -6, 1, 3, -1, 2, 4]의 연속 부분 수열 [3, -6, 1]에 펄스 수열 [1, -1, 1]을 곱하면 연속 펄스 부분수열은 [3, 6, 1]이 됩니다. 또 다른 예시로 연속 부분 수열 [3, -1, 2, 4]에 펄스 수열 [-1, 1, -1, 1]을 곱하면 연속 펄스 부분수열은 [-3, -1, -2, 4]이 됩니다. ..
[Java][프로그래머스] 161988, 연속 펄스 부분 수열의 합🇱🇻3️⃣, 연속 펄스 부분 수열의 합[161988] 🧀 프로세스 문제 설명 어떤 수열의 연속 부분 수열에 같은 길이의 펄스 수열을 각 원소끼리 곱하여 연속 펄스 부분 수열을 만들려 합니다. 펄스 수열이란 [1, -1, 1, -1 …] 또는 [-1, 1, -1, 1 …] 과 같이 1 또는 -1로 시작하면서 1과 -1이 번갈아 나오는 수열입니다. 예를 들어 수열 [2, 3, -6, 1, 3, -1, 2, 4]의 연속 부분 수열 [3, -6, 1]에 펄스 수열 [1, -1, 1]을 곱하면 연속 펄스 부분수열은 [3, 6, 1]이 됩니다. 또 다른 예시로 연속 부분 수열 [3, -1, 2, 4]에 펄스 수열 [-1, 1, -1, 1]을 곱하면 연속 펄스 부분수열은 [-3, -1, -2, 4]이 됩니다. ..
2024.04.26 -
인터페이스를 사용하는 이유는 다양하다. 그치만 내가 어떻게 답변할 수 있을 것인가 Intro 다른 언어에서도 인터페이스를 사용해본 경험이 있지만Java 를 공부하는데 있어서 어떤 방식으로 실행되고 그에 사용되는 것은 무엇인지, 그 기반에 대해 알아야 더욱 이해에 대한 깊이를 더 할 수 있을 것 같다는 생각이 들었다. 하나하나 알아보자. 🟢 인터페이스(interface)자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것이다. 하지만 클래스를 이용하여 다중 상속을 할 경우, 메소드 출처의 모호성 등 여러가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이..
[Java] Java 에서 인터페이스는 왜 쓰는 것일까인터페이스를 사용하는 이유는 다양하다. 그치만 내가 어떻게 답변할 수 있을 것인가 Intro 다른 언어에서도 인터페이스를 사용해본 경험이 있지만Java 를 공부하는데 있어서 어떤 방식으로 실행되고 그에 사용되는 것은 무엇인지, 그 기반에 대해 알아야 더욱 이해에 대한 깊이를 더 할 수 있을 것 같다는 생각이 들었다. 하나하나 알아보자. 🟢 인터페이스(interface)자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것이다. 하지만 클래스를 이용하여 다중 상속을 할 경우, 메소드 출처의 모호성 등 여러가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이..
2024.04.25