분류 전체보기
-
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🟢 87390, n^2 배열 자르기간만에 프로그래머스 풀이를 작성한다. 코딩테스트를 앞두고 있는데 LEVEL 3 도 다시 풀어보려고 하니 너무 놓고 있었는지 하나도 못 푸는 상황.. 계정을 새로 파서 LEVEL2 부터 전부 풀이한다.🧀 프로세스 [문제 설명]정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다.n행 n열 크기의 비어있는 2차원 배열을 만듭니다.i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다.1행, 2행, ..., n행을 잘라내어 ..
[Java][프로그래머스] 87390, n^2 배열 자르기프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🟢 87390, n^2 배열 자르기간만에 프로그래머스 풀이를 작성한다. 코딩테스트를 앞두고 있는데 LEVEL 3 도 다시 풀어보려고 하니 너무 놓고 있었는지 하나도 못 푸는 상황.. 계정을 새로 파서 LEVEL2 부터 전부 풀이한다.🧀 프로세스 [문제 설명]정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다.n행 n열 크기의 비어있는 2차원 배열을 만듭니다.i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다.1행, 2행, ..., n행을 잘라내어 ..
2024.06.23 -
선착순 쿠폰 서비스를 기획, 구현 중이다. 하지만 혼자서 접속을 해서 동시 접속자의 상황을 재연하기에는 무리가 있다. 마우스를 잡은 손은 하나니까! 그렇기에 고민하던 중, Locust 에 대해 알게 되었고 동시 접속을 테스트하기에 적합할 뿐만 아니라 성능에 대한 테스트도 가능하다는 것을 알게 되었다. 지금부터 알아보자. 🟢 LocustLocust는 Python으로 작성된 오픈소스 부하테스트 도구이다. Locsut를 사용하면 분산 시스템에서 여러 사용자를 시뮬레이션하여 웹 애플리케이션의 성능을 측정할 수 있다. 또한 매우 사용하기 쉽고 확장성이 뛰어나며, 사용자 시나리오를 코드로 작성할 수 있어 유연성이 높고, 대시보드를 통해 실시간으로 테스트 결과를 모니터링 할 수 있어 테스트 중에 성능 이슈를 발견..
[Spring] 성능 테스트 ? Locust로! with Docker선착순 쿠폰 서비스를 기획, 구현 중이다. 하지만 혼자서 접속을 해서 동시 접속자의 상황을 재연하기에는 무리가 있다. 마우스를 잡은 손은 하나니까! 그렇기에 고민하던 중, Locust 에 대해 알게 되었고 동시 접속을 테스트하기에 적합할 뿐만 아니라 성능에 대한 테스트도 가능하다는 것을 알게 되었다. 지금부터 알아보자. 🟢 LocustLocust는 Python으로 작성된 오픈소스 부하테스트 도구이다. Locsut를 사용하면 분산 시스템에서 여러 사용자를 시뮬레이션하여 웹 애플리케이션의 성능을 측정할 수 있다. 또한 매우 사용하기 쉽고 확장성이 뛰어나며, 사용자 시나리오를 코드로 작성할 수 있어 유연성이 높고, 대시보드를 통해 실시간으로 테스트 결과를 모니터링 할 수 있어 테스트 중에 성능 이슈를 발견..
2024.05.23 -
간혹 비즈니스 로직이나 스케줄러 + 페이지 이렇게 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