전체 글
-
[Algorithm] bubble sorting 이해하기Algorithm 2023. 9. 20. 17:44
- 목차 * 소개 버블 정렬은 아주 단순한 정렬 알고리즘입니다. 나열된 숫자들을 일일이 비교하는 연산을 수행하는데요. 그래서 시간복잡도는 크지만 직관적으로 이해할 수 있는 정렬 알고리즘입니다. 버블 정렬의 정렬 방식에 대해서 간단히 설명해보겠습니다. 무작위로 나열된 숫자들이 있다고 가정합니다. 이 나열된 숫자들 중 첫번째 수와 그 인접한 수를 한데 묶어 크기를 비교합니다. ( 즉, 첫번째 수와 두번째 수를 비교하는 것입니다. ) 그리고 정렬 방식에 따라 두 수의 위치를 변경합니다. (swap) 오름차순인 경우에는 큰 수가 뒤에 위치하고 내림차순읜 경우에는 작은 수가 뒤에 위치합니다. 그리고 두번째 수와 그 인접한 수를 비교하고 swap 을 합니다. 그리고 세번째 수와 그 인접한 수를 비교하고 swap 을..
-
Linux date 알아보기Linux & Shell 2023. 9. 20. 17:17
- 목차 * 소개 Linux Shell 에서 date 관련 예시들을 기록하려고 합니다. * yyyy-mm-dd 포맷으로 출력 date "+%Y-%m-%d" 2023-09-20 * timestamp 로 출력 date +%s 1695168330 * 시간 연산하기 date -d "-1 days" Tue Sep 19 00:07:29 UTC 2023 date -d "-1 days" +"%Y-%m-%d" 2023-09-19 * 30분 단위로 올림. echo now is $(date +"%Y-%m-%dT%H:%M:%S%z") minute=$(date +"%M"); minute_int=$((minute)); if [ $minute_int -lt 30 ]; then date +"%Y-%m-%dT%H:30:00%z"; e..
-
MySQL Lock 이해하기Database 2023. 9. 20. 06:15
- 목차 소개. MySQL 의 Lock 은 다른 사용자가 특정 데이터를 변경하는 행위를 제한합니다. 즉, 여러 사용자가 하나의 데이터를 조작하는 것을 막아 충돌을 방지합니다. MySQL 의 관점에서 사용자란 Client 가 되는데요. Client 는 하나의 Transaction 으로 표현될 수 있습니다. 즉, 어떤 Transaction 이 특정 데이터에 Lock 을 적용한다면 다른 Transaction 들은 해당 데이터를 변경할 수 없게 됩니다. Lock 의 범위는 Row, Table, Database 단위로 적용됩니다. 만약 아래와 같은 쿼리가 실행된 상태라면 select * from member where name = 'Andy' for share; 다른 Transaction 은 "Andy" 라는 m..
-
[Programmers] 이름에 el이 들어가는 동물 찾기 ( SQL , Lower)Algorithm 2023. 9. 19. 19:46
- 목차 문제 설명. ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE 보호소에 돌..
-
[ CNN ] Feature Map 이해하기AI-ML 2023. 9. 19. 08:54
- 목차 키워드.- CNN- Kernel- Feature Map - Convolution 들어가며.Convolution 연산은 입력 이미지와 커널 필터 사이에서 이뤄집니다.구체적인 연산 과정을 그림으로 표현하면 아래와 같습니다.4x4 입력 이미지와 2x2 커널 필터 사이의 일반적인 Convolution 연산을 수행합니다.4x4 입력 이미지는 2x2 커널 필터와 Convolution 결합을 하여 3x3 출력 텐서가 생성되는데요.자세한 연산의 순서는 아래의 이미지와 같습니다. 커널은 입력 이미지의 부분 집합을 순회하면서 Element wide Product 을 수행하게 됩니다.그리고 그 결과가 출력 텐서에 적용되는데, 이 출력 텐서는 Feature Map 이라고 표현합니다. Kernel Filter.Co..
-
[Programmers] 성분으로 구분한 아이스크림 총 주문량 (SQL, JOIN)Algorithm 2023. 9. 19. 06:50
- 목차 문제 설명. 다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 아이스크림 성분에 대한 정보를 담은 ICECREAM_INFO 테이블입니다. FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER 는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다. SHIPMENT_ID INT(N) FALSE FLAVOR VARCHAR(N) FALSE TOTAL_ORDER INT(N) FALSE ICECREAM_INFO 테이블 구조는 다음과 같으며, FLAVOR, INGREDITENT_TYPE 은 각각 아이스크..
-
[Programmers] 점 찍기 ( 좌표 계산)Algorithm 2023. 9. 19. 06:50
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 진수는 두 양의 정수 k, d가 주어질 때 다음과 같이 점을 찍으려 합니다. 원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...), y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다. 원점과 거리가 d를 넘는 위..
-
[Programmers] 귤 고르기 (HashMap, PriorityQueue)Algorithm 2023. 9. 19. 06:49
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 ..
-
golang package 이해하기Language/Golang 2023. 9. 18. 23:36
- 목차 * 소개go 프로젝트에서 package를 어떻게 구성해야할까요 ? go 의 package convention 과 directory - package 의 관계에 대해서 알아보도록 하겠습니다. * main package대부분의 프로그래밍 언어는 main 함수를 가집니다. main 함수와 그 함수를 가지는 파일은 컴파일러에게 특별하게 인식이 되는데요. 컴파일러는 main 함수를 가지는 파일을 실행파일로 인식하고 main 함수가 실행파일의 entrypoint 가 됩니다. 예를 들어, java 에서 public static void main () {} 형식으로 main method 가 선언된 클래스는 Main Class 라고 부르며 main method 를 가지는 클래스는 자바 컴파일러에 의해서 entr..
-
kafka __consumer_offsets topic 이해하기Kafka 2023. 9. 18. 22:16
- 목차 키워드.OffsetConsumerConsumer Group 들어가며. 카프카는 "__consumer_offsets" 이라는 이름의 토픽을 가집니다. "__consumer_offsets" 토픽의 목적은 Consumer Group 이 조회한 토픽의 offset 들을 기록하는 것입니다. 예를 들어, "topicA" 라는 토픽이 있고 파티션의 개수는 3개입니다. 그리고 "groupA" 라는 이름의 Consumer Group 이 있고 각 파티션 별로 1개 메시지를 조회한 상황입니다. 이 상황의 "__consumer_offsets" 에는topicA-0 & groupA : 1topicA-1 & groupA : 1topicA-2 & groupA : 1의 기록이 생성됩니다. ( 참고로 Partition 의 이..