problem solving

[Java : 프로그래머스] 2016년

October 20 2020

NHN 코딩테스트를 앞두고 있는데, C, C++, Java 3개 언어로만 응시가 가능하다. 임베디드 과목 수강하면서 꾸준히 사용했던 C로 응시할까 했는데, Java에 익숙해 질 겸 Java 응시를 결정했다. 문제 https://programmers.co.kr/learn/cours...

[Python : SWEA 10805] 야바위

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXTC3GH6D-EDFASe&categoryId=AXTC3GH6D-EDFASe&categoryType=CODE

[Python : SWEA 10505] 소득 불균형

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXNP4CvauaMDFAXS&categoryId=AXNP4CvauaMDFAXS&categoryType=CODE

[Python : SWEA 10200] 구독자 전쟁

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXMCXV_qVgkDFAWv&categoryId=AXMCXV_qVgkDFAWv&categoryType=CODE

[Python : 프로그래머스] 튜플

October 12 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/64065?language=python3 풀이 정규표현식으로 },{ 이랑 , 를 제거한다. 해시테이블로 각 숫자의 개수를 체크해낸다. 해시테이블의 내림차순으로 반환한다.

[Python : 프로그래머스] 여행경로

October 10 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43164?language=python3 풀이 재귀 DFS로 풀려하다가, 계속 머리속에서 꼬이는 바람에 그냥 스택으로 풀어냈다. 이게 속편한거 같다 ㅡㅡ;; 티켓을 ‘출발지:도착...

[Python : 백준 1931] 회의실배정

October 09 2020

문제 https://www.acmicpc.net/problem/1931 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수...

[Python : 백준 1541] 잃어버린 괄호

October 09 2020

문제 https://www.acmicpc.net/problem/1541 풀이 괄호 개수 제한이 없기 때문에 ‘-‘를 발견하면, 이후 연산을 모두 뺄셈으로 바꿀 수 있다. 이를 코드로 옮길 때 ‘-‘를 발견하기 전 값은 더해주고 ‘-‘를 발견한 이후 값은 모두 빼주면 된다.

[Python : 백준 11399] ATM

October 09 2020

문제 https://www.acmicpc.net/problem/11399 풀이 지문에서 모든 힌트를 다 줬기 때문에, 그대로 코드에 옮기기만 하면 되는데 제한조건만 잘 확인하면 점화식까지 세울 필요도 없었다. 1초 제한에 N의 최대가 1,000이었기 때문에 그냥 O(n)시간 풀이...

[Python : 백준 11047] 동전 0

October 09 2020

문제 https://www.acmicpc.net/problem/11047 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.

[Python : 나동빈] 음료수 얼려 먹기

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * M 행렬을 입력 받는다. 행렬상의 0은 음료얼음, 1은 플라스틱 0이 이어지면 한 덩어리로 취급한다. 음료얼음 덩어리는 총 몇 개인가?

[Python : 나동빈] 왕실의 나이트

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 8 * 8 크기의 체스판 좌표를 입력 받으면, 나이트가 움직일 수 있는 경우의 수 구하기

[Python : 나동빈] 시각

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중 3이 하나라도 포함되는 모든 경우의 수를 구하라.

[Python : 나동빈] 상하좌우

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * N 행렬 좌표 가장 좌측 상단 좌표는 1,1 가장 우측 하단 좌표는 N,N 로 표기한다. N 길이의 입력에는 L(left), R(right), U(up), D(down) 이 들어있다. 좌...

[Python : 나동빈] 미로 탈출

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * M 행렬 미로 1은 길, 0은 벽 1,1 지점부터 N, M 지점까지 이동하는데 필요한 최저횟수를 구하라.

[Python : 나동빈] 문자열 재정렬

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 알파벳 대문자와 숫자(0~9)로만 이루어진 문자열이 주어진다. 이 문자열을 알파벳 오름차순으로 정렬하고, 숫자는 모두 더해서 뒤에 붙여라.

[Python : 나동빈] 모험가 길드

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 한 마을에 모험가가 N명 모험가별로 가지고 있는 ‘공포도’가 다르다. 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여 최대 몇 그룹이 탄생하는가

[Python : 나동빈] 곱하기 혹은 더하기

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 ‘*’ 혹은 ‘+’ 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를...

[SQL : 프로그래머스] 입양 시각 구하기(2)

October 08 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59413?language=mysql 풀이 갑자기 안풀려서 답답했던 문제였는데, 알고보니 LEVEL 4 였다더라~ SET을 통해 변수를 설정해야 쉽게 풀 수 있는 문제였다. SET @h...

[Python : 프로그래머스] 땅따먹기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12913 풀이 문제에 제시된 조건을 읽자마자 각 행을 내림차순으로 정렬해서 이전 행에서 가져온 최대값과 열이 같으면 바로 다음 값을 찾는 식으로 구현했다. def solution(la...

[SQL : 프로그래머스] 중복 제거하기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59408 풀이 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME!='' 중복제거가 DISTINCT인건 인지하고 있었는데, COUNT함...

[SQL : 프로그래머스] NULL 처리하기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59410 풀이 SELECT ANIMAL_TYPE, IF(NAME IS NULL, 'No name', NAME) AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS...

[Python : 프로그래머스] 최댓값과 최솟값

September 28 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12939?language=python3 풀이 문자열을 split 함수를 이용하면 공백문자 단위로 쪼갤 수 있고, map 함수로 쪼개진 리스트를 정수형으로 변환시키면, min/max 함...

[Python : 프로그래머스] 올바른 괄호

September 28 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12909?language=python3 풀이 ’(‘와 ‘)’ 의 갯수부터 맞지 않는다면 탐색할 필요 없이 바로 False를 반환한다. 제한사항과 입출력 예시에서 말하는 올바른 괄호는 ...

[Python : 프로그래머스] 최솟값 만들기

September 26 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12941?language=python3 풀이 곱셈의 특성을 생각하면 어떻게 접근해야할지 파악이 가능한 문제다. 최대값은 될 수 있는한 최소값으로 곱하고, 최소값을 최대값으로 곱해줘야 ...

[Python : 프로그래머스] 다음 큰 숫자

September 26 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12911?language=python3 풀이 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때...

[Python : 프로그래머스] 폰켓몬

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/1845 풀이 nums result [3,1,2,3] 2 [3,3,3,2,2,4] 3 [3,3,3,2,2,2] 2 우선 곧장 모든 조합을 구하는 것은 굉장히 무거우므로 배제한다. 안봐...

[Python : 프로그래머스] 정수 삼각형

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3 풀이 대게 이런 삼각형 문제들은 행 단위로 구분시켰을 때 위 아래 행 간의 구성에 대해 이해하면 풀이가 시작되는 것 같다. [7] --...

[Python : 프로그래머스] 오픈채팅방

September 25 2020

문제 https://www.welcomekakao.com/learn/courses/30/lessons/42888?language=python3 풀이 ``` #input [“Enter uid1234 Muzi”, “Enter uid4567 Prodo”, “Leave uid1234”, ...

[Python : 프로그래머스] 스킬트리

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/49993?language=python3 풀이 def solution(skill, skill_trees): answer = 0 for tree in skill_trees ...

[Python : 프로그래머스] 멀쩡한 사각형

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/62048?language=python3 풀이 처음에 문제를 읽고 예시그림이 너무 간결해서 눈을 의심했지만, 그렇게 간결한 예시그림을 준 이유는 무엇이겠는가? 수학적으로 접근해서 해결 ...

[Python : 프로그래머스] 멀리 뛰기

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12914 풀이 멀리 뛰기 칸이 1개 일때부터 조합의 수를 나열해보자. 1 -- [1] -- 1 2 -- [1,1][2] -- 2 3 -- [1,1,1][1,2][2,1] -- 3 4 ...

[Python : 프로그래머스] 구명보트

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42885?language=python3 풀이 조이스틱에서 피본거에 비하면 20분만에 쉽게 풀어낸 문제. 피본 덕분에 실력이 늘은건가? from collections import d...

[Python : 프로그래머스] 124 나라의 숫자

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12899 풀이 1, 2, 4 로 이루어진 3진수 숫자로 10진수를 변환시키는 문제. 단, 우리가 아는 8진수 16진수는 0~7, 0~15로 이루어져있는데, 124 나라의 3진수는 1,...

[Python : 프로그래머스] 조이스틱

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42860 풀이 LEVEL 2인거 보고 덤볐다가 3시간 넘게 피본 문제 def solution(name): name = list(name) total = 0 i =...

[Python : 프로그래머스] 더 맵게

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42626?language=python3 풀이 최소/최대 값을 계속 사용하는 알고리즘이다? –> Heap 자료구조. 파이썬 내장모듈 heapq를 통해 구현했다. Heap 자료구조가...

[Python : 프로그래머스] 단어 변환

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43163?language=python3 풀이 최초 시도 ```python def DFS(compw, words, count): for w in range(len(words)):...

[Python : 프로그래머스] 체육복

September 23 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42862?language=python3 풀이 def solution(n, lost, reserve): ht = {} for i in range(1, n+1): ...

[Python : 프로그래머스] 2016년

September 23 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12901 풀이 def solution(a, b): week = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"] month = [...

[Python : 프로그래머스] 타겟 넘버

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 풀이 def solution(numbers, target): from itertools import product pm = [(num, -num) for num...

[Python : 프로그래머스] 카펫

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3 풀이 def solution(brown, yellow): total = brown + yellow cd = [i for i in ...

[Python : 프로그래머스] 네트워크

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43162 풀이 DFS로 경로가 몇 개인지 찾는 문제 보통 DFS가 무한루프에 빠지지 않도록 방문내역을 확인하는데, 모든 노드에 대해서 방문기록이 있는지 확인하고, 없으면 DFS 진행시...

[Python : 프로그래머스] 프린터

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42587?language=python3 풀이 def solution(priorities, location): op = priorities[location] lst = s...

[Python : 프로그래머스] 소수 찾기

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42839 풀이 ```python from itertools import permutations def isPrime(n: int) -> bool: if n < 2 :...

[Python : 프로그래머스] 모의고사

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3 풀이 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막...

[Python : 프로그래머스] 다리를 지나는 트럭

September 19 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42583 풀이 문제를 처음 읽었을 당시 실제로 큐에 값이 차례로 Insert / POP 되는 형태보다 weight를 넘지 않는 인접값끼리 한 꺼번에 처리하면 좋지 않을까 하며 그림을 ...

[Python : 프로그래머스] 주식가격

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42584 풀이 def solution(prices): answer = [0] prices.reverse() print(prices) for i in ran...

[Python : 프로그래머스] 베스트앨범

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42579 풀이 ‘이건 알고리즘보다 자료구조에 치중된 문제가 아닌가?’ 생각하면서 다 풀고 보니까 3레벨 문제였네. ‘설마 이중해시일까?, 아니겠지’ 하면서 계속 고민 해봤지만 결국 ...

[Python : 프로그래머스] H-Index

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42747 풀이 def solution(citations): citations = sorted(citations) answer = 0 for i in ra...

[Python : 프로그래머스] 가장 큰 수

September 17 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42746 풀이 가장 단순하게 떠올린 방법은 itertools 라이브러리의 permutations 함수를 이용해서 모든 조합을 구한다음 비교하는 것이었는데, 대부분의 탐색 알고리즘은 ...

맨 위로 이동 ↑

Python

[Python : SWEA 10805] 야바위

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXTC3GH6D-EDFASe&categoryId=AXTC3GH6D-EDFASe&categoryType=CODE

[Python : SWEA 10505] 소득 불균형

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXNP4CvauaMDFAXS&categoryId=AXNP4CvauaMDFAXS&categoryType=CODE

[Python : SWEA 10200] 구독자 전쟁

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXMCXV_qVgkDFAWv&categoryId=AXMCXV_qVgkDFAWv&categoryType=CODE

[Python : 프로그래머스] 튜플

October 12 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/64065?language=python3 풀이 정규표현식으로 },{ 이랑 , 를 제거한다. 해시테이블로 각 숫자의 개수를 체크해낸다. 해시테이블의 내림차순으로 반환한다.

[Python : 프로그래머스] 여행경로

October 10 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43164?language=python3 풀이 재귀 DFS로 풀려하다가, 계속 머리속에서 꼬이는 바람에 그냥 스택으로 풀어냈다. 이게 속편한거 같다 ㅡㅡ;; 티켓을 ‘출발지:도착...

[Python : 백준 1931] 회의실배정

October 09 2020

문제 https://www.acmicpc.net/problem/1931 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수...

[Python : 백준 1541] 잃어버린 괄호

October 09 2020

문제 https://www.acmicpc.net/problem/1541 풀이 괄호 개수 제한이 없기 때문에 ‘-‘를 발견하면, 이후 연산을 모두 뺄셈으로 바꿀 수 있다. 이를 코드로 옮길 때 ‘-‘를 발견하기 전 값은 더해주고 ‘-‘를 발견한 이후 값은 모두 빼주면 된다.

[Python : 백준 11399] ATM

October 09 2020

문제 https://www.acmicpc.net/problem/11399 풀이 지문에서 모든 힌트를 다 줬기 때문에, 그대로 코드에 옮기기만 하면 되는데 제한조건만 잘 확인하면 점화식까지 세울 필요도 없었다. 1초 제한에 N의 최대가 1,000이었기 때문에 그냥 O(n)시간 풀이...

[Python : 백준 11047] 동전 0

October 09 2020

문제 https://www.acmicpc.net/problem/11047 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.

[Python : 나동빈] 음료수 얼려 먹기

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * M 행렬을 입력 받는다. 행렬상의 0은 음료얼음, 1은 플라스틱 0이 이어지면 한 덩어리로 취급한다. 음료얼음 덩어리는 총 몇 개인가?

[Python : 나동빈] 왕실의 나이트

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 8 * 8 크기의 체스판 좌표를 입력 받으면, 나이트가 움직일 수 있는 경우의 수 구하기

[Python : 나동빈] 시각

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중 3이 하나라도 포함되는 모든 경우의 수를 구하라.

[Python : 나동빈] 상하좌우

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * N 행렬 좌표 가장 좌측 상단 좌표는 1,1 가장 우측 하단 좌표는 N,N 로 표기한다. N 길이의 입력에는 L(left), R(right), U(up), D(down) 이 들어있다. 좌...

[Python : 나동빈] 미로 탈출

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * M 행렬 미로 1은 길, 0은 벽 1,1 지점부터 N, M 지점까지 이동하는데 필요한 최저횟수를 구하라.

[Python : 나동빈] 문자열 재정렬

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 알파벳 대문자와 숫자(0~9)로만 이루어진 문자열이 주어진다. 이 문자열을 알파벳 오름차순으로 정렬하고, 숫자는 모두 더해서 뒤에 붙여라.

[Python : 나동빈] 모험가 길드

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 한 마을에 모험가가 N명 모험가별로 가지고 있는 ‘공포도’가 다르다. 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여 최대 몇 그룹이 탄생하는가

[Python : 나동빈] 곱하기 혹은 더하기

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 ‘*’ 혹은 ‘+’ 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를...

[Python : 프로그래머스] 땅따먹기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12913 풀이 문제에 제시된 조건을 읽자마자 각 행을 내림차순으로 정렬해서 이전 행에서 가져온 최대값과 열이 같으면 바로 다음 값을 찾는 식으로 구현했다. def solution(la...

[Python : 프로그래머스] 최댓값과 최솟값

September 28 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12939?language=python3 풀이 문자열을 split 함수를 이용하면 공백문자 단위로 쪼갤 수 있고, map 함수로 쪼개진 리스트를 정수형으로 변환시키면, min/max 함...

[Python : 프로그래머스] 올바른 괄호

September 28 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12909?language=python3 풀이 ’(‘와 ‘)’ 의 갯수부터 맞지 않는다면 탐색할 필요 없이 바로 False를 반환한다. 제한사항과 입출력 예시에서 말하는 올바른 괄호는 ...

[Python : 프로그래머스] 최솟값 만들기

September 26 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12941?language=python3 풀이 곱셈의 특성을 생각하면 어떻게 접근해야할지 파악이 가능한 문제다. 최대값은 될 수 있는한 최소값으로 곱하고, 최소값을 최대값으로 곱해줘야 ...

[Python : 프로그래머스] 다음 큰 숫자

September 26 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12911?language=python3 풀이 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때...

[Python : 프로그래머스] 폰켓몬

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/1845 풀이 nums result [3,1,2,3] 2 [3,3,3,2,2,4] 3 [3,3,3,2,2,2] 2 우선 곧장 모든 조합을 구하는 것은 굉장히 무거우므로 배제한다. 안봐...

[Python : 프로그래머스] 정수 삼각형

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3 풀이 대게 이런 삼각형 문제들은 행 단위로 구분시켰을 때 위 아래 행 간의 구성에 대해 이해하면 풀이가 시작되는 것 같다. [7] --...

[Python : 프로그래머스] 오픈채팅방

September 25 2020

문제 https://www.welcomekakao.com/learn/courses/30/lessons/42888?language=python3 풀이 ``` #input [“Enter uid1234 Muzi”, “Enter uid4567 Prodo”, “Leave uid1234”, ...

[Python : 프로그래머스] 스킬트리

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/49993?language=python3 풀이 def solution(skill, skill_trees): answer = 0 for tree in skill_trees ...

[Python : 프로그래머스] 멀쩡한 사각형

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/62048?language=python3 풀이 처음에 문제를 읽고 예시그림이 너무 간결해서 눈을 의심했지만, 그렇게 간결한 예시그림을 준 이유는 무엇이겠는가? 수학적으로 접근해서 해결 ...

[Python : 프로그래머스] 멀리 뛰기

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12914 풀이 멀리 뛰기 칸이 1개 일때부터 조합의 수를 나열해보자. 1 -- [1] -- 1 2 -- [1,1][2] -- 2 3 -- [1,1,1][1,2][2,1] -- 3 4 ...

[Python : 프로그래머스] 구명보트

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42885?language=python3 풀이 조이스틱에서 피본거에 비하면 20분만에 쉽게 풀어낸 문제. 피본 덕분에 실력이 늘은건가? from collections import d...

[Python : 프로그래머스] 124 나라의 숫자

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12899 풀이 1, 2, 4 로 이루어진 3진수 숫자로 10진수를 변환시키는 문제. 단, 우리가 아는 8진수 16진수는 0~7, 0~15로 이루어져있는데, 124 나라의 3진수는 1,...

[Python : 프로그래머스] 조이스틱

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42860 풀이 LEVEL 2인거 보고 덤볐다가 3시간 넘게 피본 문제 def solution(name): name = list(name) total = 0 i =...

[Python : 프로그래머스] 더 맵게

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42626?language=python3 풀이 최소/최대 값을 계속 사용하는 알고리즘이다? –> Heap 자료구조. 파이썬 내장모듈 heapq를 통해 구현했다. Heap 자료구조가...

[Python : 프로그래머스] 단어 변환

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43163?language=python3 풀이 최초 시도 ```python def DFS(compw, words, count): for w in range(len(words)):...

[Python : 프로그래머스] 체육복

September 23 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42862?language=python3 풀이 def solution(n, lost, reserve): ht = {} for i in range(1, n+1): ...

[Python : 프로그래머스] 2016년

September 23 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12901 풀이 def solution(a, b): week = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"] month = [...

[Python : 프로그래머스] 타겟 넘버

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 풀이 def solution(numbers, target): from itertools import product pm = [(num, -num) for num...

[Python : 프로그래머스] 카펫

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3 풀이 def solution(brown, yellow): total = brown + yellow cd = [i for i in ...

[Python : 프로그래머스] 네트워크

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43162 풀이 DFS로 경로가 몇 개인지 찾는 문제 보통 DFS가 무한루프에 빠지지 않도록 방문내역을 확인하는데, 모든 노드에 대해서 방문기록이 있는지 확인하고, 없으면 DFS 진행시...

[Python : 프로그래머스] 프린터

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42587?language=python3 풀이 def solution(priorities, location): op = priorities[location] lst = s...

[Python : 프로그래머스] 소수 찾기

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42839 풀이 ```python from itertools import permutations def isPrime(n: int) -> bool: if n < 2 :...

[Python : 프로그래머스] 모의고사

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3 풀이 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막...

[Python : 프로그래머스] 다리를 지나는 트럭

September 19 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42583 풀이 문제를 처음 읽었을 당시 실제로 큐에 값이 차례로 Insert / POP 되는 형태보다 weight를 넘지 않는 인접값끼리 한 꺼번에 처리하면 좋지 않을까 하며 그림을 ...

[Python : 프로그래머스] 주식가격

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42584 풀이 def solution(prices): answer = [0] prices.reverse() print(prices) for i in ran...

[Python : 프로그래머스] 베스트앨범

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42579 풀이 ‘이건 알고리즘보다 자료구조에 치중된 문제가 아닌가?’ 생각하면서 다 풀고 보니까 3레벨 문제였네. ‘설마 이중해시일까?, 아니겠지’ 하면서 계속 고민 해봤지만 결국 ...

[Python : 프로그래머스] H-Index

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42747 풀이 def solution(citations): citations = sorted(citations) answer = 0 for i in ra...

[Python : 프로그래머스] 가장 큰 수

September 17 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42746 풀이 가장 단순하게 떠올린 방법은 itertools 라이브러리의 permutations 함수를 이용해서 모든 조합을 구한다음 비교하는 것이었는데, 대부분의 탐색 알고리즘은 ...

[Python 재무제표 크롤링 #5] txt to tsv 자동화

February 20 2020

OpenDART에서 제공해준 API들을 추가적으로 조사해보다가, 굳이 기업별로 재무정보를 확인할 필요 없이 상장되어 있는 전체 기업들의 재무정보를 한꺼번에 확인할 수 있는 txt파일의 다운로드를 제공한다는 것을 확인했다. 얼마전 차장님께서 진행해주신 ERP 관련 교육 때, ERP...

[Python 재무제표 크롤링 #4] 뒤집힌 프로젝트

February 12 2020

2020년 1월 22일 기준 전자공시사이트(dart.fss.or.kr)에서 신규API사이트 오픈을 공개했다. 그간 개발해온 프로젝트와 동일한 목적을 이루는 API 또한 존재하는 걸 확인했고, 이를 테스트 해본 결과 더 양질의 결과물을 얻을 수 있는 것을 확인했다. 그렇다....

[Python 재무제표 크롤링 #3] 분기점 세분화 및 예외처리 시작

January 17 2020

저번 포스팅까지 작성된 코드에서는 연결 재무상태표에 대한 정보만을 다루었다. 이번에는 (개별) 재무상태표의 정보까지 다루기 위해 연결 재무제표와 (개별) 재무제표를 구별할 수 있는 분기점을 설계 및 보완하고, 기업별로 들쭉날쭉한 사업보고서 양식을 커버할 수 있는 방법에 대해 고...

[Python 재무제표 크롤링 #2] 설계 및 구현 고도화

January 16 2020

이번 글에서는 [Python 재무제표 크롤링 #1] 요구사항, 재무제표 분석 및 설계에서 작성했던 코드를 다듬고, 실행 결과 파일 저장명을 기업명(또는 기업종목코드)와 해당 보고서명의 조합으로 저장하기 위한 코드를 추가했다. 또한 재무상태표의 표만을 엑셀에 저장하는 것이 아닌, ...

[Python 재무제표 크롤링 #1] 요구사항, 재무제표 분석 및 설계

January 15 2020

방학기간 동안 인턴활동을 하면서 DART 전자공시시스템에서 제공하는 연결재무상태표와 (개별)재무상태표를 크롤링하는 프로젝트를 진행하게 되었다. 프로젝트를 공식적으로 시작한 날짜는 1월 3일이었으나, 중간에 다른 업무들이 겹쳐서 실질적으로 시작한 날짜는 1월 10일 정도였다.

맨 위로 이동 ↑

프로그래머스

[Java : 프로그래머스] 2016년

October 20 2020

NHN 코딩테스트를 앞두고 있는데, C, C++, Java 3개 언어로만 응시가 가능하다. 임베디드 과목 수강하면서 꾸준히 사용했던 C로 응시할까 했는데, Java에 익숙해 질 겸 Java 응시를 결정했다. 문제 https://programmers.co.kr/learn/cours...

[Python : 프로그래머스] 튜플

October 12 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/64065?language=python3 풀이 정규표현식으로 },{ 이랑 , 를 제거한다. 해시테이블로 각 숫자의 개수를 체크해낸다. 해시테이블의 내림차순으로 반환한다.

[Python : 프로그래머스] 여행경로

October 10 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43164?language=python3 풀이 재귀 DFS로 풀려하다가, 계속 머리속에서 꼬이는 바람에 그냥 스택으로 풀어냈다. 이게 속편한거 같다 ㅡㅡ;; 티켓을 ‘출발지:도착...

[SQL : 프로그래머스] 입양 시각 구하기(2)

October 08 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59413?language=mysql 풀이 갑자기 안풀려서 답답했던 문제였는데, 알고보니 LEVEL 4 였다더라~ SET을 통해 변수를 설정해야 쉽게 풀 수 있는 문제였다. SET @h...

[Python : 프로그래머스] 땅따먹기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12913 풀이 문제에 제시된 조건을 읽자마자 각 행을 내림차순으로 정렬해서 이전 행에서 가져온 최대값과 열이 같으면 바로 다음 값을 찾는 식으로 구현했다. def solution(la...

[SQL : 프로그래머스] 중복 제거하기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59408 풀이 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME!='' 중복제거가 DISTINCT인건 인지하고 있었는데, COUNT함...

[SQL : 프로그래머스] NULL 처리하기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59410 풀이 SELECT ANIMAL_TYPE, IF(NAME IS NULL, 'No name', NAME) AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS...

[Python : 프로그래머스] 최댓값과 최솟값

September 28 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12939?language=python3 풀이 문자열을 split 함수를 이용하면 공백문자 단위로 쪼갤 수 있고, map 함수로 쪼개진 리스트를 정수형으로 변환시키면, min/max 함...

[Python : 프로그래머스] 올바른 괄호

September 28 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12909?language=python3 풀이 ’(‘와 ‘)’ 의 갯수부터 맞지 않는다면 탐색할 필요 없이 바로 False를 반환한다. 제한사항과 입출력 예시에서 말하는 올바른 괄호는 ...

[Python : 프로그래머스] 최솟값 만들기

September 26 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12941?language=python3 풀이 곱셈의 특성을 생각하면 어떻게 접근해야할지 파악이 가능한 문제다. 최대값은 될 수 있는한 최소값으로 곱하고, 최소값을 최대값으로 곱해줘야 ...

[Python : 프로그래머스] 다음 큰 숫자

September 26 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12911?language=python3 풀이 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때...

[Python : 프로그래머스] 폰켓몬

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/1845 풀이 nums result [3,1,2,3] 2 [3,3,3,2,2,4] 3 [3,3,3,2,2,2] 2 우선 곧장 모든 조합을 구하는 것은 굉장히 무거우므로 배제한다. 안봐...

[Python : 프로그래머스] 정수 삼각형

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3 풀이 대게 이런 삼각형 문제들은 행 단위로 구분시켰을 때 위 아래 행 간의 구성에 대해 이해하면 풀이가 시작되는 것 같다. [7] --...

[Python : 프로그래머스] 오픈채팅방

September 25 2020

문제 https://www.welcomekakao.com/learn/courses/30/lessons/42888?language=python3 풀이 ``` #input [“Enter uid1234 Muzi”, “Enter uid4567 Prodo”, “Leave uid1234”, ...

[Python : 프로그래머스] 스킬트리

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/49993?language=python3 풀이 def solution(skill, skill_trees): answer = 0 for tree in skill_trees ...

[Python : 프로그래머스] 멀쩡한 사각형

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/62048?language=python3 풀이 처음에 문제를 읽고 예시그림이 너무 간결해서 눈을 의심했지만, 그렇게 간결한 예시그림을 준 이유는 무엇이겠는가? 수학적으로 접근해서 해결 ...

[Python : 프로그래머스] 멀리 뛰기

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12914 풀이 멀리 뛰기 칸이 1개 일때부터 조합의 수를 나열해보자. 1 -- [1] -- 1 2 -- [1,1][2] -- 2 3 -- [1,1,1][1,2][2,1] -- 3 4 ...

[Python : 프로그래머스] 구명보트

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42885?language=python3 풀이 조이스틱에서 피본거에 비하면 20분만에 쉽게 풀어낸 문제. 피본 덕분에 실력이 늘은건가? from collections import d...

[Python : 프로그래머스] 124 나라의 숫자

September 25 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12899 풀이 1, 2, 4 로 이루어진 3진수 숫자로 10진수를 변환시키는 문제. 단, 우리가 아는 8진수 16진수는 0~7, 0~15로 이루어져있는데, 124 나라의 3진수는 1,...

[Python : 프로그래머스] 조이스틱

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42860 풀이 LEVEL 2인거 보고 덤볐다가 3시간 넘게 피본 문제 def solution(name): name = list(name) total = 0 i =...

[Python : 프로그래머스] 더 맵게

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42626?language=python3 풀이 최소/최대 값을 계속 사용하는 알고리즘이다? –> Heap 자료구조. 파이썬 내장모듈 heapq를 통해 구현했다. Heap 자료구조가...

[Python : 프로그래머스] 단어 변환

September 24 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43163?language=python3 풀이 최초 시도 ```python def DFS(compw, words, count): for w in range(len(words)):...

[Python : 프로그래머스] 체육복

September 23 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42862?language=python3 풀이 def solution(n, lost, reserve): ht = {} for i in range(1, n+1): ...

[Python : 프로그래머스] 2016년

September 23 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/12901 풀이 def solution(a, b): week = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"] month = [...

[Python : 프로그래머스] 타겟 넘버

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 풀이 def solution(numbers, target): from itertools import product pm = [(num, -num) for num...

[Python : 프로그래머스] 카펫

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3 풀이 def solution(brown, yellow): total = brown + yellow cd = [i for i in ...

[Python : 프로그래머스] 네트워크

September 22 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/43162 풀이 DFS로 경로가 몇 개인지 찾는 문제 보통 DFS가 무한루프에 빠지지 않도록 방문내역을 확인하는데, 모든 노드에 대해서 방문기록이 있는지 확인하고, 없으면 DFS 진행시...

[Python : 프로그래머스] 프린터

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42587?language=python3 풀이 def solution(priorities, location): op = priorities[location] lst = s...

[Python : 프로그래머스] 소수 찾기

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42839 풀이 ```python from itertools import permutations def isPrime(n: int) -> bool: if n < 2 :...

[Python : 프로그래머스] 모의고사

September 21 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3 풀이 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막...

[Python : 프로그래머스] 다리를 지나는 트럭

September 19 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42583 풀이 문제를 처음 읽었을 당시 실제로 큐에 값이 차례로 Insert / POP 되는 형태보다 weight를 넘지 않는 인접값끼리 한 꺼번에 처리하면 좋지 않을까 하며 그림을 ...

[Python : 프로그래머스] 주식가격

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42584 풀이 def solution(prices): answer = [0] prices.reverse() print(prices) for i in ran...

[Python : 프로그래머스] 베스트앨범

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42579 풀이 ‘이건 알고리즘보다 자료구조에 치중된 문제가 아닌가?’ 생각하면서 다 풀고 보니까 3레벨 문제였네. ‘설마 이중해시일까?, 아니겠지’ 하면서 계속 고민 해봤지만 결국 ...

[Python : 프로그래머스] H-Index

September 18 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42747 풀이 def solution(citations): citations = sorted(citations) answer = 0 for i in ra...

[Python : 프로그래머스] 가장 큰 수

September 17 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/42746 풀이 가장 단순하게 떠올린 방법은 itertools 라이브러리의 permutations 함수를 이용해서 모든 조합을 구한다음 비교하는 것이었는데, 대부분의 탐색 알고리즘은 ...

맨 위로 이동 ↑

Java

추상 클래스를 왜 쓰나요?

March 12 2021

👓 추상 클래스를 왜? 블랙잭 미션 피드백 강의의 핵심은 “객체지향의 다형성을 이용한 조건문 줄이기” 였다.

Java Exception

February 27 2021

제이슨의 Exception 강의를 들으면서 공부한 내용을 정리해보자.

Java 테스트와 불변, 객체

February 11 2021

테스트만을 위한 생성자, 메서드를 구현해도 되는가? 제이슨의 말에 따르면 생성자는 많이 만들수록 클라이언트(API 사용자) 좋은 사용성을 제공해준다고 한다. 그러나 메서드는 다르다. 객체에 메서드가 많아지면 객체 복잡도와 중복 코드를 증가시킬 뿐이다. 게다가 메서드가 많아지면 단...

Java class와 instance

February 08 2021

제이슨의 class와 instance 강의를 들으면서 공부한 내용을 정리해보자.

Java package와 import

February 05 2021

제이슨의 package와 import 강의를 들으면서 공부한 내용을 정리해보자.

[Java : 프로그래머스] 2016년

October 20 2020

NHN 코딩테스트를 앞두고 있는데, C, C++, Java 3개 언어로만 응시가 가능하다. 임베디드 과목 수강하면서 꾸준히 사용했던 C로 응시할까 했는데, Java에 익숙해 질 겸 Java 응시를 결정했다. 문제 https://programmers.co.kr/learn/cours...

맨 위로 이동 ↑

우아한테크코스

내가 꿈꾸는 프로그래머로서의 삶

November 08 2021

우아한테크코스 레벨4 글쓰기 미션 - 내가 꿈꾸는 프로그래머로서의 삶 로 작성했던 글이다. TMI가 너무 많아 블로그에 글을 올릴까말까 고민하다가… ‘이런 나도 나니까!’ 마음 먹고 홀라당 올려버리기로!

팀 프로젝트가 나에게 남긴 것

August 23 2021

우아한테크코스 레벨3 글쓰기 미션 - 팀 프로젝트가 나에게 남긴 것 로 작성했던 글이다! 우아한형제들 기술블로그에도 기재되었다!!

우아한테크코스 레벨2 회고

June 11 2021

레벨1에서는 미션마다 회고를 작성했는데, 레벨2에서는 미션에 치여서 정신없게 지내다 보니 블로그 포스팅이 어려웠다.. 준호(제이)님과 점심식사 자리에서 준호님이 “미션당 회고 어려울거에요 ㅋㅋ” 라고 하셨었는데, 현실이 되었다.. (미션당 회고는 고사하고, 레벨당 회고만 진행해도 ...

우아한테크코스 체스 미션 회고

April 15 2021

7, 8, 9주차 기간동안 진행된 체스 미션에 대한 회고를 작성한다. https://github.com/woowacourse/java-chess/pull/207 https://github.com/woowacourse/java-chess/pull/240

우아한테크코스 블랙잭 미션 회고

April 08 2021

5, 6주차 기간동안 진행된 블랙잭 미션에 대한 회고를 작성한다. https://github.com/woowacourse/java-blackjack/pull/147 https://github.com/woowacourse/java-blackjack/pull/200

우아한테크코스 한 달 생활기

April 04 2021

우아한테크코스 레벨1 글쓰기 미션 - 우아한테크코스 한 달 생활기 로 작성했던 글이다! 한 달간 생활하면서 깨달은 소프트스킬의 중요성에 대해 소설처럼 풀어내고자 했다.

우아한테크코스 로또 미션 회고

March 15 2021

3, 4주차 기간동안 진행된 로또 미션에 대한 회고를 작성한다. https://github.com/woowacourse/java-lotto/pull/275 https://github.com/woowacourse/java-lotto/pull/309

추상 클래스를 왜 쓰나요?

March 12 2021

👓 추상 클래스를 왜? 블랙잭 미션 피드백 강의의 핵심은 “객체지향의 다형성을 이용한 조건문 줄이기” 였다.

Java Exception

February 27 2021

제이슨의 Exception 강의를 들으면서 공부한 내용을 정리해보자.

우아한테크코스 자동차 경주 미션 회고

February 25 2021

1, 2주차 기간동안 진행된 자동차 경주 게임 미션에 대한 회고를 작성한다. https://github.com/woowacourse/java-racingcar/pull/181 https://github.com/woowacourse/java-racingcar/pull/199

Java 테스트와 불변, 객체

February 11 2021

테스트만을 위한 생성자, 메서드를 구현해도 되는가? 제이슨의 말에 따르면 생성자는 많이 만들수록 클라이언트(API 사용자) 좋은 사용성을 제공해준다고 한다. 그러나 메서드는 다르다. 객체에 메서드가 많아지면 객체 복잡도와 중복 코드를 증가시킬 뿐이다. 게다가 메서드가 많아지면 단...

Java class와 instance

February 08 2021

제이슨의 class와 instance 강의를 들으면서 공부한 내용을 정리해보자.

Java package와 import

February 05 2021

제이슨의 package와 import 강의를 들으면서 공부한 내용을 정리해보자.

맨 위로 이동 ↑

reading books

reading books / 소프트웨어 장인

February 14 2021

책을 읽기 전에 나는 개인적으로 자기계발 서적을 좋아하지 않는다. 혹여나 읽게 된다면 굉장히 방어적이고, 비판적인 태도로 읽는다. 학부 2학년 때 읽었던 ‘긍정의 배신’이라는 책이 이러한 태도를 갖게한 주범이었다. ‘긍정의 배신’은 긍정 이데올로기에 취해있는 우리 사회에서 ...

2020-11-02 이펙티브자바 첫 스터디

November 02 2020

최근 이펙티브자바 스터디를 시작했다. “아직 자바에 익숙하지도 않은 놈이 이펙티브자바를 읽어도 되나?” 라는 생각이 들었지만, 오히려 자바에 익숙하지 않기 때문에 더 쉽게 흡수할 수 있을거라는 믿음으로 시작했다.

열혈C프로그래밍을 복습하면서 배운 것들

October 27 2020

# 1학년 과목을 재수강 하고 있다. 새내기 시절 ‘정말 저렇게 살아도 될까?’ 싶을 정도로 학교생활을 즐겨서 전공 과목 점수가 영 순탄하지 못했다. (후회는 없다! 잘 놀았어! 🤤) 그 중에서도 가장 기본이 되는 C프로그래밍 과목 점수들이 모두 C+ + 하나만 더 있으면 C++이...

맨 위로 이동 ↑

MySQL

[SQL : 프로그래머스] 입양 시각 구하기(2)

October 08 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59413?language=mysql 풀이 갑자기 안풀려서 답답했던 문제였는데, 알고보니 LEVEL 4 였다더라~ SET을 통해 변수를 설정해야 쉽게 풀 수 있는 문제였다. SET @h...

[SQL : 프로그래머스] 중복 제거하기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59408 풀이 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME!='' 중복제거가 DISTINCT인건 인지하고 있었는데, COUNT함...

[SQL : 프로그래머스] NULL 처리하기

October 07 2020

문제 https://programmers.co.kr/learn/courses/30/lessons/59410 풀이 SELECT ANIMAL_TYPE, IF(NAME IS NULL, 'No name', NAME) AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS...

맨 위로 이동 ↑

백준

[Python : 백준 1931] 회의실배정

October 09 2020

문제 https://www.acmicpc.net/problem/1931 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수...

[Python : 백준 1541] 잃어버린 괄호

October 09 2020

문제 https://www.acmicpc.net/problem/1541 풀이 괄호 개수 제한이 없기 때문에 ‘-‘를 발견하면, 이후 연산을 모두 뺄셈으로 바꿀 수 있다. 이를 코드로 옮길 때 ‘-‘를 발견하기 전 값은 더해주고 ‘-‘를 발견한 이후 값은 모두 빼주면 된다.

[Python : 백준 11399] ATM

October 09 2020

문제 https://www.acmicpc.net/problem/11399 풀이 지문에서 모든 힌트를 다 줬기 때문에, 그대로 코드에 옮기기만 하면 되는데 제한조건만 잘 확인하면 점화식까지 세울 필요도 없었다. 1초 제한에 N의 최대가 1,000이었기 때문에 그냥 O(n)시간 풀이...

[Python : 백준 11047] 동전 0

October 09 2020

문제 https://www.acmicpc.net/problem/11047 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.

맨 위로 이동 ↑

Effective Java

2020-11-02 이펙티브자바 첫 스터디

November 02 2020

최근 이펙티브자바 스터디를 시작했다. “아직 자바에 익숙하지도 않은 놈이 이펙티브자바를 읽어도 되나?” 라는 생각이 들었지만, 오히려 자바에 익숙하지 않기 때문에 더 쉽게 흡수할 수 있을거라는 믿음으로 시작했다.

맨 위로 이동 ↑

나동빈

[Python : 나동빈] 음료수 얼려 먹기

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * M 행렬을 입력 받는다. 행렬상의 0은 음료얼음, 1은 플라스틱 0이 이어지면 한 덩어리로 취급한다. 음료얼음 덩어리는 총 몇 개인가?

[Python : 나동빈] 왕실의 나이트

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 8 * 8 크기의 체스판 좌표를 입력 받으면, 나이트가 움직일 수 있는 경우의 수 구하기

[Python : 나동빈] 시각

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중 3이 하나라도 포함되는 모든 경우의 수를 구하라.

[Python : 나동빈] 상하좌우

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * N 행렬 좌표 가장 좌측 상단 좌표는 1,1 가장 우측 하단 좌표는 N,N 로 표기한다. N 길이의 입력에는 L(left), R(right), U(up), D(down) 이 들어있다. 좌...

[Python : 나동빈] 미로 탈출

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) N * M 행렬 미로 1은 길, 0은 벽 1,1 지점부터 N, M 지점까지 이동하는데 필요한 최저횟수를 구하라.

[Python : 나동빈] 문자열 재정렬

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 알파벳 대문자와 숫자(0~9)로만 이루어진 문자열이 주어진다. 이 문자열을 알파벳 오름차순으로 정렬하고, 숫자는 모두 더해서 뒤에 붙여라.

[Python : 나동빈] 모험가 길드

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 한 마을에 모험가가 N명 모험가별로 가지고 있는 ‘공포도’가 다르다. 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여 최대 몇 그룹이 탄생하는가

[Python : 나동빈] 곱하기 혹은 더하기

October 08 2020

문제 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 ‘*’ 혹은 ‘+’ 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를...

맨 위로 이동 ↑

spring

@ModelAttribute을 setter 없이 사용할 수 있는 이유

June 28 2021

많은 블로그에서 @ModelAttribute 어노테이션을 통해 데이터를 바인딩 할 때 setter 메서드가 필요하다고 했다. 그러나 실제 테스트를 진행해보니 setter 메서드 없이도 @ModelAttribute를 통한 데이터 바인딩이 성공됨을 확인할 수 있었다.

Spring JDBC를 통한 DB 연동

June 22 2021

DataSource JDBC API는 DriverManager 외에 DataSource를 이용해서 DB 연결을 구하는 방법을 정의하고 있다. DB연동 기능을 구현하고 Bean으로 등록되어 있는 객체(주로 @Repository 어노테이션을 붙인)에 DataSource를 주입하는 ...

Spring AOP

June 22 2021

AOP(Aspect Oriented Programming)은 관점 지향 프로그래밍으로, 어떤 로직에 대해 핵심적인 관점, 부가적인 관점을 나누어 보고 그 관점들을 기준으로 각각 모듈화를 하겠다는 것이다. (모듈화 - 공통된 로직이나 기능을 하나의 단위로 묶는 것)

Bean 라이프사이클과 범위

June 22 2021

스프링 컨테이너의 라이프사이클 스프링 컨테이너는 초기화와 종료라는 라이프 사이클을 갖는다.

스프링 설정과 의존성 주입(DI)

June 22 2021

객체 조립기 (Assembler) 앞서 DI(의존성 주입)을 설명할 때 객체를 주입하는 방식이 유지보수에 있어 굉장한 이점을 가진다는 것을 설명했다. 그렇다면 주입이 되는 객체를 생성하는 곳은 어디여야할까? 일반적으로 가장 최상단인 main 메서드를 떠올릴 수 있다.

component scan

June 22 2021

@Component 클래스 선언부 위 쪽에 @Component 어노테이션을 붙이면 @Configuration 클래스에 별도로 Bean 등록 과정을 거치지 않아도 스프링이 패키지 전체를 탐색해서 Bean으로 등록 할 수 있다.

Autowired 어노테이션

June 22 2021

@Autowired - 자동주입 @Configuration public class AppCtx { @Bean public MemberDao memberDao() { return new MemberDao(); } @Bean public ChangePas...

스프링 개요

June 21 2021

스프링 (스프링 프레임워크) 주로 스프링 프레임워크를 칭한다.

맨 위로 이동 ↑

후기

맨 위로 이동 ↑

review

맨 위로 이동 ↑

SWEA

[Python : SWEA 10805] 야바위

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXTC3GH6D-EDFASe&categoryId=AXTC3GH6D-EDFASe&categoryType=CODE

[Python : SWEA 10505] 소득 불균형

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXNP4CvauaMDFAXS&categoryId=AXNP4CvauaMDFAXS&categoryType=CODE

[Python : SWEA 10200] 구독자 전쟁

October 16 2020

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXMCXV_qVgkDFAWv&categoryId=AXMCXV_qVgkDFAWv&categoryType=CODE

맨 위로 이동 ↑

docker

도커 위의 DBMS를 로컬로 마이그레이션 하기

October 06 2021

이전에 로컬에서 잘 돌아가고 있는 데이터베이스를 굳이 도커 위로 마이그레이션 시킨 경험이 있었다. 그 후로 큰 이슈 없이 서비스가 잘 동작했기 때문에 도커 위에 데이터베이스를 운영하는 것에 만족하고 있었는데, 얼마전 브라운이 초청해주신 홍정민 DBA님의 특별 강연에서 DBA님이 ...

도커, 스프링부트 타임 존 설정

August 21 2021

⏱️ 도커 컨테이너 타임 존 설정 도커 컨테이너 위에서 동작하면서 별도의 타임 존 설정이 없는 프로그램들의 경우 docker-compose.yml 파일의 타임 존 설정에 따라 시간이 설정된다.

도커 컨테이너 IP 주소 트러블 슈팅

August 21 2021

🐋 첫 번째 이슈 - Summary babble 프로젝트를 진행하면서, 상용 서버에서 릴리즈 테스트를 진행하지 말고 별도의 테스팅 서버를 만들어서 릴리즈 테스트를 진행하고자 했다.

로컬 DB 도커로 마이그레이션 하기

July 26 2021

🐳 summary “영속성을 가져야할 클라이언 데이터를 도커 위에서 관리한다고?” 라는 생각 때문에 데이터베이스만큼은 절대로 도커 위에 올려선 안되고, EC2 인스턴스 로컬에 설치해서 관리해야한다는 일종의 신념을 가지고 있었다. 그런데 얼마 전 다라쓰 팀이 디비를 도커 위에 올린 ...

맨 위로 이동 ↑

jpa

Kotlin JPA 필수 지식

September 30 2022

Kotlin 은 Java 와 같은 JVM 기반 언어로, JPA 도 사용할 수 있다. Java 와 호환을 우선시하고, Java 에서 번거로웠던 코드를 묵시적으로 제공하거나 제거하는데 초점을 맞춰져있다. 때문에 Kotlin 으로 JPA Entity 를 구성했을 때 깔끔함에 감탄하곤 한...

JPA Enum Table ID 전략 선택

July 28 2022

간혹 레거시 코드, DB 테이블 중에 Enum 값을 테이블로 직접 만들어서 관리하는 경우가 있다.

@NotNull 어노테이션 예외처리 핸들링

August 24 2021

📓 summary lombok에서 지원하는 @NonNull 어노테이션을 통해 엔티티의 필드를 검증하던 중, @NonNull 어노테이션이 필드에 Null 값이 주입될 경우 NullPointerException이 던져지는 것을 발견했다. 프로젝트의 ControllerAdivce 구조...

맨 위로 이동 ↑

Python 재무제표 크롤링

[Python 재무제표 크롤링 #5] txt to tsv 자동화

February 20 2020

OpenDART에서 제공해준 API들을 추가적으로 조사해보다가, 굳이 기업별로 재무정보를 확인할 필요 없이 상장되어 있는 전체 기업들의 재무정보를 한꺼번에 확인할 수 있는 txt파일의 다운로드를 제공한다는 것을 확인했다. 얼마전 차장님께서 진행해주신 ERP 관련 교육 때, ERP...

[Python 재무제표 크롤링 #4] 뒤집힌 프로젝트

February 12 2020

2020년 1월 22일 기준 전자공시사이트(dart.fss.or.kr)에서 신규API사이트 오픈을 공개했다. 그간 개발해온 프로젝트와 동일한 목적을 이루는 API 또한 존재하는 걸 확인했고, 이를 테스트 해본 결과 더 양질의 결과물을 얻을 수 있는 것을 확인했다. 그렇다....

[Python 재무제표 크롤링 #3] 분기점 세분화 및 예외처리 시작

January 17 2020

저번 포스팅까지 작성된 코드에서는 연결 재무상태표에 대한 정보만을 다루었다. 이번에는 (개별) 재무상태표의 정보까지 다루기 위해 연결 재무제표와 (개별) 재무제표를 구별할 수 있는 분기점을 설계 및 보완하고, 기업별로 들쭉날쭉한 사업보고서 양식을 커버할 수 있는 방법에 대해 고...

[Python 재무제표 크롤링 #2] 설계 및 구현 고도화

January 16 2020

이번 글에서는 [Python 재무제표 크롤링 #1] 요구사항, 재무제표 분석 및 설계에서 작성했던 코드를 다듬고, 실행 결과 파일 저장명을 기업명(또는 기업종목코드)와 해당 보고서명의 조합으로 저장하기 위한 코드를 추가했다. 또한 재무상태표의 표만을 엑셀에 저장하는 것이 아닌, ...

[Python 재무제표 크롤링 #1] 요구사항, 재무제표 분석 및 설계

January 15 2020

방학기간 동안 인턴활동을 하면서 DART 전자공시시스템에서 제공하는 연결재무상태표와 (개별)재무상태표를 크롤링하는 프로젝트를 진행하게 되었다. 프로젝트를 공식적으로 시작한 날짜는 1월 3일이었으나, 중간에 다른 업무들이 겹쳐서 실질적으로 시작한 날짜는 1월 10일 정도였다.

맨 위로 이동 ↑

etc

하루가 더 길었으면 좋겠다.

October 08 2020

머리도 식힐 겸 요즘 하는 생각에 대해 기록해둘까 하는 마음에 쓴다. 사실 당시의 감정을 기록하는 글은 매번 적고 싶었지만, 항상 시간에 쫒겨왔고, 여유시간이 생기는 날에는 자느라 바빴다. 복학 후에 항상 그랬지만, 근래 들어 더 심각하게 느끼는게 있다.

개발 가이드 탐색의 중요성과 업무효율

May 06 2020

거의 3개월만의 포스팅, 근황부터 기록해야할 것 같다. 근황 3월부터 국가근로장학생에 선발되어 네이버 블로그 포스팅을 하는 아르바이트를 진행 중이었다. 워낙 평소에도 글 쓰는 것 좋아했고, 그간 해오던 몸 쓰는 아르바이트에 비하면 이만한 꿀도 없는지라 즐거운 마음으로 돈 벌며 전...

마크다운과 HTML

February 04 2020

마크다운(MarkDown)이라는 이름이 HTML(Hyper Text Markup Language)과 같은 마크업 언어의 종류인데 말장난스럽게 지은 이름이라는 것까지는 알고 있었다. 이러한 특성 때문에 마크다운 문법으로 문서를 작성하면 HTML로 자동 변환되어 글이 적힌다는 것 ...

맨 위로 이동 ↑

Agile Java

맨 위로 이동 ↑

git

Git rebase merge 트러블 슈팅

September 26 2021

babble 팀에선 프로젝트 초기 단계에서 아래와 같은 Git branch merge 전략을 사용하고 있었다.

Github 비밀번호 변경 후 로컬 깃에 반영하기

March 15 2021

🗝️ 비밀번호를 변경하게 된 계기 일주일 전부터 깃허브 메인화면 상단에 이상한 알림이 보이기 시작했다. 관심을 잘 갖지 않고 있다가 지하철에서 한 번 열어봤는데, 얼레? 😲

깃 명령어 정리

February 28 2021

함께 제이슨 팀에 속해있는 매력덩어리 와일더 가 깃 명령어에 대해 공부하고 이를 정리하여 테코톡 형식으로 발표를 진행했었다. 와일더의 발표를 들으면서 새롭게 배운 명령어들이 많아 기억속에서 잊혀지기 전에 정리해보고자 한다!

맨 위로 이동 ↑

network

web-socket 연결 끊김 감지하기

July 25 2021

🐧 Summary 클라이언트A가 서버와 소켓 연결을 끊을 경우(Disconnect) 서버에 해당 소식을 전달하고, 소식을 접한 서버가 나머지 클라이언트들에게 클라이언트A의 연결이 끊겼음을(퇴장했음을) 알리는 형태를 구성하고 싶었다.

spring web-socket 기본 구성

July 25 2021

🍦 Configuration @Configuration 어노테이션을 사용 중인 클래스에 @EnableWebSocketMessageBroker 어노테이션을 추가하여 사용 할 수 있다. 어노테이션이 추가되고 나면 web-socket을 이용한 메세지 브로커가 활성화 된다.

소켓 기본 개념

July 24 2021

📢 Network IPC: Socket pipe, FIFO, message queue, semaphore, shared memory 등은 하나의 컴퓨터, 단말 내부의 프로세스간 통신(Inter Process Communication) 방법이다.

CloudFront를 통해 S3 액세스 하기

July 13 2021

☁️ Summary Amazon S3(Simple Storage Service)는 간편한 데이터 관리 및 액세스 제어를 제공해주는 저장소다. ‘무한대로 늘어나는 외부 저장소 + 간편한 액세스 제어’ 정도로 생각하면 편할 것 같다.

맨 위로 이동 ↑

kotlin

Kotlin JPA 필수 지식

September 30 2022

Kotlin 은 Java 와 같은 JVM 기반 언어로, JPA 도 사용할 수 있다. Java 와 호환을 우선시하고, Java 에서 번거로웠던 코드를 묵시적으로 제공하거나 제거하는데 초점을 맞춰져있다. 때문에 Kotlin 으로 JPA Entity 를 구성했을 때 깔끔함에 감탄하곤 한...

맨 위로 이동 ↑

aws

Github actions를 이용한 ECS 배포 자동화

February 14 2022

이미 ECS상에 배포환경(클러스터, 서비스, 태스크 정의)이 모두 준비된 상태에서, 애플리케이션의 변화가 일어났을 때 Github actions를 이용해 자동으로 배포를 진행하는(태스크 내부 애플리케이션 컨테이너를 교체하는) 자동화 방법을 경험해보았다.

EC2 내부 파일 SCP로 다운로드 받기

November 24 2021

🗄️ summary 우아한테크코스 활동기간이 끝나가니 babble 프로젝트 서버에도 비상이 걸렸다. CU께서 수료일을 기점으로 모든 EC2 인스턴스를 삭제할 것이라 공지하셨기 때문이다. ‘언젠간 해야지’를 반복하며 차일피일 미루다가, 정말 일정이 얼마 남지 않아 황급하게 백업할 파...

CloudFront를 통해 S3 액세스 하기

July 13 2021

☁️ Summary Amazon S3(Simple Storage Service)는 간편한 데이터 관리 및 액세스 제어를 제공해주는 저장소다. ‘무한대로 늘어나는 외부 저장소 + 간편한 액세스 제어’ 정도로 생각하면 편할 것 같다.

맨 위로 이동 ↑

cloudfront

CloudFront 도메인 이름 변경하기 (신규등록)

August 20 2021

🍩 summary DNS를 활용하는데 2가지 방법이 있다. Route 53로 DNS를 발급 받아 사용한다. (TLS 인증서 등록 과정이 생략된다.) 외부 DNS를 발급 받은 다음, SSL(TLS) 인증서를 ACM(Amazon Certificate Manager)를 통해 등...

React S3, CloudFront에 배포하기

August 19 2021

💎 summary babble 팀 서비스를 배포한 후로 새로고침을 할 때나 초기 페이지를 거치지 않고 URL로 직접 페이지를 이동하는 경우 계속해서 403 FORBIDDEN 에러를 마주쳤다. 왜 그런지 이유를 찾던 중, 얼핏 들었던 “React는 HTML 파일을 하나로만 구성해서...

CloudFront를 통해 S3 액세스 하기

July 13 2021

☁️ Summary Amazon S3(Simple Storage Service)는 간편한 데이터 관리 및 액세스 제어를 제공해주는 저장소다. ‘무한대로 늘어나는 외부 저장소 + 간편한 액세스 제어’ 정도로 생각하면 편할 것 같다.

맨 위로 이동 ↑

websocket

NGINX 웹 소켓 프록시 설정

July 26 2021

🥃 summary Nginx는 버전 1.3부터 ​​WebSocket을 지원하며, WebSocket의 로드 밸런싱 을 수행 할 수 있다.

web-socket 연결 끊김 감지하기

July 25 2021

🐧 Summary 클라이언트A가 서버와 소켓 연결을 끊을 경우(Disconnect) 서버에 해당 소식을 전달하고, 소식을 접한 서버가 나머지 클라이언트들에게 클라이언트A의 연결이 끊겼음을(퇴장했음을) 알리는 형태를 구성하고 싶었다.

spring web-socket 기본 구성

July 25 2021

🍦 Configuration @Configuration 어노테이션을 사용 중인 클래스에 @EnableWebSocketMessageBroker 어노테이션을 추가하여 사용 할 수 있다. 어노테이션이 추가되고 나면 web-socket을 이용한 메세지 브로커가 활성화 된다.

소켓 기본 개념

July 24 2021

📢 Network IPC: Socket pipe, FIFO, message queue, semaphore, shared memory 등은 하나의 컴퓨터, 단말 내부의 프로세스간 통신(Inter Process Communication) 방법이다.

맨 위로 이동 ↑

database

MySQL(MariaDB) Replication with JPA

October 23 2021

🕵️ summary 개요 복제(Replication)는 한 서버에서 다른 서버로 데이터가 동기화 되는 것을 말하며, 원본 데이터를 가진 서버를 소스(Source/Master) 서버, 복제된 데이터를 가지는 서버를 레플리카(Replica/Slave) 서버라고 부른다. 소스 서버에서 ...

도커 위의 DBMS를 로컬로 마이그레이션 하기

October 06 2021

이전에 로컬에서 잘 돌아가고 있는 데이터베이스를 굳이 도커 위로 마이그레이션 시킨 경험이 있었다. 그 후로 큰 이슈 없이 서비스가 잘 동작했기 때문에 도커 위에 데이터베이스를 운영하는 것에 만족하고 있었는데, 얼마전 브라운이 초청해주신 홍정민 DBA님의 특별 강연에서 DBA님이 ...

로컬 DB 도커로 마이그레이션 하기

July 26 2021

🐳 summary “영속성을 가져야할 클라이언 데이터를 도커 위에서 관리한다고?” 라는 생각 때문에 데이터베이스만큼은 절대로 도커 위에 올려선 안되고, EC2 인스턴스 로컬에 설치해서 관리해야한다는 일종의 신념을 가지고 있었다. 그런데 얼마 전 다라쓰 팀이 디비를 도커 위에 올린 ...

맨 위로 이동 ↑

java

에러 메세지를 상세하게 던져야 하는 이유

August 18 2021

에러 메세지를 굉장히 자세하게 적을 필요가 없다고 생각했다. 자칫 잘못 적으면 사용자에게 내부 구조를 노출 시킬 수도 있을거 같고, 굳이 단서를 제공해주지 않아도 에러의 네임만으로도 충분히 문제를 찾을 수 있을 것이라 생각했다.

맨 위로 이동 ↑

4학년 1학기를 돌아보며

4학년 1학기를 돌아보며 : 국가근로 아르바이트

September 17 2020

올해 1학기에 들어설 때 세웠던 계획이 총 5가지 였다. 성공적으로 졸업작품을 진행할 것 코딩테스트 연습 오픽/토스 점수 취득 정보처리기사 자격증 취득 빚지지 않을 만큼 돈벌기 (아르바이트)

4학년 1학기를 돌아보며 : 정보처리기사 필기

August 26 2020

올해 1학기에 들어설 때 세웠던 계획이 총 5가지 였다. 성공적으로 졸업작품을 진행할 것 코딩테스트 연습 오픽/토스 점수 취득 정보처리기사 자격증 취득 빚지지 않을 만큼 돈벌기 (아르바이트)

4학년 1학기를 돌아보며 : 졸업작품 진행

August 25 2020

올해 1학기에 들어설 때 세웠던 계획이 총 5가지 였다. 성공적으로 졸업작품을 진행할 것 코딩테스트 연습 오픽/토스 점수 취득 정보처리기사 자격증 취득 빚지지 않을 만큼 돈벌기 (아르바이트)

맨 위로 이동 ↑

IDE

맨 위로 이동 ↑

s3

CloudFront 도메인 이름 변경하기 (신규등록)

August 20 2021

🍩 summary DNS를 활용하는데 2가지 방법이 있다. Route 53로 DNS를 발급 받아 사용한다. (TLS 인증서 등록 과정이 생략된다.) 외부 DNS를 발급 받은 다음, SSL(TLS) 인증서를 ACM(Amazon Certificate Manager)를 통해 등...

React S3, CloudFront에 배포하기

August 19 2021

💎 summary babble 팀 서비스를 배포한 후로 새로고침을 할 때나 초기 페이지를 거치지 않고 URL로 직접 페이지를 이동하는 경우 계속해서 403 FORBIDDEN 에러를 마주쳤다. 왜 그런지 이유를 찾던 중, 얼핏 들었던 “React는 HTML 파일을 하나로만 구성해서...

CloudFront를 통해 S3 액세스 하기

July 13 2021

☁️ Summary Amazon S3(Simple Storage Service)는 간편한 데이터 관리 및 액세스 제어를 제공해주는 저장소다. ‘무한대로 늘어나는 외부 저장소 + 간편한 액세스 제어’ 정도로 생각하면 편할 것 같다.

맨 위로 이동 ↑

socket

web-socket 연결 끊김 감지하기

July 25 2021

🐧 Summary 클라이언트A가 서버와 소켓 연결을 끊을 경우(Disconnect) 서버에 해당 소식을 전달하고, 소식을 접한 서버가 나머지 클라이언트들에게 클라이언트A의 연결이 끊겼음을(퇴장했음을) 알리는 형태를 구성하고 싶었다.

spring web-socket 기본 구성

July 25 2021

🍦 Configuration @Configuration 어노테이션을 사용 중인 클래스에 @EnableWebSocketMessageBroker 어노테이션을 추가하여 사용 할 수 있다. 어노테이션이 추가되고 나면 web-socket을 이용한 메세지 브로커가 활성화 된다.

소켓 기본 개념

July 24 2021

📢 Network IPC: Socket pipe, FIFO, message queue, semaphore, shared memory 등은 하나의 컴퓨터, 단말 내부의 프로세스간 통신(Inter Process Communication) 방법이다.

맨 위로 이동 ↑

nginx

Nginx vs Apache

November 10 2021

우아한테크코스 피케이의 테코톡을 참고해서 정리한 내용이다!

NGINX 다중 서버 upstream 설정

August 25 2021

🚂 summary 기존 Web-server (Reverse-proxy) 역할로 사용자와 WAS(Web Application Server)간 통신을 이어주던 NGINX에서 소나큐브 서버도 통신을 지원하도록 설정하고 싶었다. 그림으로 표현하자면 아래와 같다.

NGINX 웹 소켓 프록시 설정

July 26 2021

🥃 summary Nginx는 버전 1.3부터 ​​WebSocket을 지원하며, WebSocket의 로드 밸런싱 을 수행 할 수 있다.

맨 위로 이동 ↑

github-actions

Github actions를 이용한 ECS 배포 자동화

February 14 2022

이미 ECS상에 배포환경(클러스터, 서비스, 태스크 정의)이 모두 준비된 상태에서, 애플리케이션의 변화가 일어났을 때 Github actions를 이용해 자동으로 배포를 진행하는(태스크 내부 애플리케이션 컨테이너를 교체하는) 자동화 방법을 경험해보았다.

맨 위로 이동 ↑

exception

@NotNull 어노테이션 예외처리 핸들링

August 24 2021

📓 summary lombok에서 지원하는 @NonNull 어노테이션을 통해 엔티티의 필드를 검증하던 중, @NonNull 어노테이션이 필드에 Null 값이 주입될 경우 NullPointerException이 던져지는 것을 발견했다. 프로젝트의 ControllerAdivce 구조...

에러 메세지를 상세하게 던져야 하는 이유

August 18 2021

에러 메세지를 굉장히 자세하게 적을 필요가 없다고 생각했다. 자칫 잘못 적으면 사용자에게 내부 구조를 노출 시킬 수도 있을거 같고, 굳이 단서를 제공해주지 않아도 에러의 네임만으로도 충분히 문제를 찾을 수 있을 것이라 생각했다.

맨 위로 이동 ↑

reading-books

reading books / 배민다움

November 04 2021

책을 읽기 전에 어느 덧 우아한테크코스 교육과정에 막바지에 다다르고 자기소개서를 준비하는 11월이다. 루터회관으로 향하는 아침, 버스 안에서 ‘내가 지원하고자 하는 기업들에 대해 얼마나 알고 있지?’ 라는 생각이 머릿 속을 스친다. 멍하니 허공을 응시해보지만 시덥지 않은 생각만 떠...

맨 위로 이동 ↑

unit-testing

맨 위로 이동 ↑

troubleshooting

맨 위로 이동 ↑

blog

블로그 이전에 대한 고민

January 01 2021

최근 블로그 포스팅이 뜸했다. 블로그 이전에 관해서 고민이 있었기 떄문이었다. Github Pages(Jkelly) 서비스를 이용한 블로그를 운영한지 어느덧 1년이 지났다. 최근 블로그를 운영하면서 겪은 3가지 이슈로 인해 티스토리 블로그로 이전을 고민했었다.

블로그 댓글 utterances로 변경하기

October 23 2020

💡 utterances에 관심을 가지게 된 계기 얼마전 내 블로그에 처음으로 댓글이 달렸다! 🎉🎉🎉 [Python : 프로그래머스] 가장 큰 수 포스팅인데, 감사하게도 질문 댓글을 달아주셔서 다시 짚어볼 계기가 되었다. 풀이를 댓글로 설명하는 과정에서 Disqus의 마크업 작성방...

맨 위로 이동 ↑

OOP

DTO vs VO

April 13 2021

3대450(이었던) 킹갓인비의 2월 25일 DTO vs VO 테코톡을 정리해보자!

맨 위로 이동 ↑

AWS

재부팅 없이 EC2 저장장치 볼륨 늘리기

April 30 2021

AWS EC2 인스턴스의 저장장치는 EBS(Elastic Block Store)로 구성할 수 있다. EBS는 탄력적 저장장치로 볼륨을 자유롭게 키울 수 있는데, 재부팅 없이 볼륨을 키우는 방법에 대해 실습을 진행했다.

맨 위로 이동 ↑

ec2

EC2 내부 파일 SCP로 다운로드 받기

November 24 2021

🗄️ summary 우아한테크코스 활동기간이 끝나가니 babble 프로젝트 서버에도 비상이 걸렸다. CU께서 수료일을 기점으로 모든 EC2 인스턴스를 삭제할 것이라 공지하셨기 때문이다. ‘언젠간 해야지’를 반복하며 차일피일 미루다가, 정말 일정이 얼마 남지 않아 황급하게 백업할 파...

맨 위로 이동 ↑

ip address

도커, 스프링부트 타임 존 설정

August 21 2021

⏱️ 도커 컨테이너 타임 존 설정 도커 컨테이너 위에서 동작하면서 별도의 타임 존 설정이 없는 프로그램들의 경우 docker-compose.yml 파일의 타임 존 설정에 따라 시간이 설정된다.

도커 컨테이너 IP 주소 트러블 슈팅

August 21 2021

🐋 첫 번째 이슈 - Summary babble 프로젝트를 진행하면서, 상용 서버에서 릴리즈 테스트를 진행하지 말고 별도의 테스팅 서버를 만들어서 릴리즈 테스트를 진행하고자 했다.

맨 위로 이동 ↑

sonarqube

SonarCloud 적용 트러블 슈팅

September 23 2021

summary 우아한테크코스 레벨4 HTTP 서버 구현하기 미션을 진행하던 중이었다. 미션대로 구현을 완료하고 PR(Pull Request)를 작성했는데 정적분석 툴 SonarQube 가 자동으로 동작하고, 분석 결과도 PR 페이지에서 곧장 보여주고 있었다?!

소나큐브 설치하기

August 23 2021

이 글에서는 현재 최신버전인 9.0버전이 아니라, LTS버전인 8.9버전을 사용했다!

맨 위로 이동 ↑

validation

@NotNull 어노테이션 예외처리 핸들링

August 24 2021

📓 summary lombok에서 지원하는 @NonNull 어노테이션을 통해 엔티티의 필드를 검증하던 중, @NonNull 어노테이션이 필드에 Null 값이 주입될 경우 NullPointerException이 던져지는 것을 발견했다. 프로젝트의 ControllerAdivce 구조...

맨 위로 이동 ↑

test

맨 위로 이동 ↑

query-dsl

맨 위로 이동 ↑

생각

모종삽과 굴삭기

June 25 2022

“현구님, 어드민 페이지에 메모 기능 추가하는 거 어려워요?”

맨 위로 이동 ↑

졸업작품

4학년 1학기를 돌아보며 : 졸업작품 진행

August 25 2020

올해 1학기에 들어설 때 세웠던 계획이 총 5가지 였다. 성공적으로 졸업작품을 진행할 것 코딩테스트 연습 오픽/토스 점수 취득 정보처리기사 자격증 취득 빚지지 않을 만큼 돈벌기 (아르바이트)

맨 위로 이동 ↑

정보처리기사

4학년 1학기를 돌아보며 : 정보처리기사 필기

August 26 2020

올해 1학기에 들어설 때 세웠던 계획이 총 5가지 였다. 성공적으로 졸업작품을 진행할 것 코딩테스트 연습 오픽/토스 점수 취득 정보처리기사 자격증 취득 빚지지 않을 만큼 돈벌기 (아르바이트)

맨 위로 이동 ↑

국가근로장학생

4학년 1학기를 돌아보며 : 국가근로 아르바이트

September 17 2020

올해 1학기에 들어설 때 세웠던 계획이 총 5가지 였다. 성공적으로 졸업작품을 진행할 것 코딩테스트 연습 오픽/토스 점수 취득 정보처리기사 자격증 취득 빚지지 않을 만큼 돈벌기 (아르바이트)

맨 위로 이동 ↑

Spring frameworks

Spring과 Javascript Frameworks 공부

September 29 2020

요즘 잘나간다는 프레임워크들의 특징을 알고 싶다. 라는 생각으로 시작하게 된 개인 프로젝트다. 개인적으로 백엔드는 Node.js가 가볍고 배우기도 쉽고, 가장 익숙해서 더 선호하지만 정형화된 패턴과 그로 인한 안정성을 가진 Spring을 두고 클라이언트의 입장에서 비교했을 때,...

맨 위로 이동 ↑

C

열혈C프로그래밍을 복습하면서 배운 것들

October 27 2020

# 1학년 과목을 재수강 하고 있다. 새내기 시절 ‘정말 저렇게 살아도 될까?’ 싶을 정도로 학교생활을 즐겨서 전공 과목 점수가 영 순탄하지 못했다. (후회는 없다! 잘 놀았어! 🤤) 그 중에서도 가장 기본이 되는 C프로그래밍 과목 점수들이 모두 C+ + 하나만 더 있으면 C++이...

맨 위로 이동 ↑

열혈C프로그래밍

열혈C프로그래밍을 복습하면서 배운 것들

October 27 2020

# 1학년 과목을 재수강 하고 있다. 새내기 시절 ‘정말 저렇게 살아도 될까?’ 싶을 정도로 학교생활을 즐겨서 전공 과목 점수가 영 순탄하지 못했다. (후회는 없다! 잘 놀았어! 🤤) 그 중에서도 가장 기본이 되는 C프로그래밍 과목 점수들이 모두 C+ + 하나만 더 있으면 C++이...

맨 위로 이동 ↑

비전공자에게 설명하기

맨 위로 이동 ↑

JUnit 5

맨 위로 이동 ↑

design pattern

맨 위로 이동 ↑

Spring

맨 위로 이동 ↑

VI/VIM

VI/VIM 단축키 정리

April 30 2021

시스템프로그래밍, 운영체제를 공부하는 동안 VIM에 푹 빠져서 단축키를 외웠던거 같은데, 인텔리제이의 생산성에 무릎꿇고 말은 나… 그래도 배포/인프라 공부를 하면서 다시 VIM을 사용할 기회가 찾아왔다. 남겨두자!

맨 위로 이동 ↑

Http상태코드

400 BAD REQUEST vs 404 NOT FOUND

June 05 2021

404 NOT FOUND 레벨2 기간 미션을 진행하던 중 크로플이 도저히 이유를 알 수 없는 테스트 에러를 마주쳐서, 도와줄 사람을 찾고 있다며 찾아왔다. 이 때 크로플이 대략 아래와 같은 테스트 코드를 보여줬다.

맨 위로 이동 ↑

JdbcTemplate

맨 위로 이동 ↑

ReverseProxy

맨 위로 이동 ↑

WAS

맨 위로 이동 ↑

EC2

맨 위로 이동 ↑

cicd

맨 위로 이동 ↑

github

맨 위로 이동 ↑

jdk

macOS Big Sur JDK 설치 및 버전 변경

August 19 2021

🍺 summary 신규 프로젝트를 로컬에서 동작 시켜보기 위해 JDK 8 버전이 필요했다. 기존 로컬에 설치되어 있던 버전은 JDK 14 였기 때문에 버전 변경이 필요했는데 버전 변경이 뜻대로 이루어지지 않아 반나절을 고생했다.

맨 위로 이동 ↑

react

React S3, CloudFront에 배포하기

August 19 2021

💎 summary babble 팀 서비스를 배포한 후로 새로고침을 할 때나 초기 페이지를 거치지 않고 URL로 직접 페이지를 이동하는 경우 계속해서 403 FORBIDDEN 에러를 마주쳤다. 왜 그런지 이유를 찾던 중, 얼핏 들었던 “React는 HTML 파일을 하나로만 구성해서...

맨 위로 이동 ↑

dns

CloudFront 도메인 이름 변경하기 (신규등록)

August 20 2021

🍩 summary DNS를 활용하는데 2가지 방법이 있다. Route 53로 DNS를 발급 받아 사용한다. (TLS 인증서 등록 과정이 생략된다.) 외부 DNS를 발급 받은 다음, SSL(TLS) 인증서를 ACM(Amazon Certificate Manager)를 통해 등...

맨 위로 이동 ↑

invalidations

맨 위로 이동 ↑

cache

맨 위로 이동 ↑

github actions

Github-actions 작업간 독립성

August 23 2021

🐹 summary 스프링부트 서버 빌드와 소나큐브 서버 빌드를 하나의 workflow.yml 파일로 관리하던 중, 소나큐브 서버 빌드시 동작하는 jacoco가 스프링부트 서버 빌드에서 진행되는 테스트코드 결과물(부산물)을 필요로 한다는 걸 깨닫고 스프링부트 서버 빌드가 소나큐브 ...

맨 위로 이동 ↑

workflow

Github-actions 작업간 독립성

August 23 2021

🐹 summary 스프링부트 서버 빌드와 소나큐브 서버 빌드를 하나의 workflow.yml 파일로 관리하던 중, 소나큐브 서버 빌드시 동작하는 jacoco가 스프링부트 서버 빌드에서 진행되는 테스트코드 결과물(부산물)을 필요로 한다는 걸 깨닫고 스프링부트 서버 빌드가 소나큐브 ...

맨 위로 이동 ↑

trouble shooting

소나큐브 설치하기

August 23 2021

이 글에서는 현재 최신버전인 9.0버전이 아니라, LTS버전인 8.9버전을 사용했다!

맨 위로 이동 ↑

infra

NGINX 다중 서버 upstream 설정

August 25 2021

🚂 summary 기존 Web-server (Reverse-proxy) 역할로 사용자와 WAS(Web Application Server)간 통신을 이어주던 NGINX에서 소나큐브 서버도 통신을 지원하도록 설정하고 싶었다. 그림으로 표현하자면 아래와 같다.

맨 위로 이동 ↑

webserver

NGINX 다중 서버 upstream 설정

August 25 2021

🚂 summary 기존 Web-server (Reverse-proxy) 역할로 사용자와 WAS(Web Application Server)간 통신을 이어주던 NGINX에서 소나큐브 서버도 통신을 지원하도록 설정하고 싶었다. 그림으로 표현하자면 아래와 같다.

맨 위로 이동 ↑

session

쿠키와 세션에서 세션은 어디에 저장되는가?

August 25 2021

🍪 세션은 어디에 있지? 쿠키와 세션에 대해 공부하다보면, 쿠키가 클라이언트의 브라우저 스토리지(저장공간)에 저장된다는 것을 금방 알 수 있다. 실제로 브라우저의 쿠키 저장공간을 확인해보면 쿠키가 저장되어 있는 모습도 볼 수 있다. 그렇다면 세션은 어디에 저장되는 걸까? 막연하게...

맨 위로 이동 ↑

tomcat

쿠키와 세션에서 세션은 어디에 저장되는가?

August 25 2021

🍪 세션은 어디에 있지? 쿠키와 세션에 대해 공부하다보면, 쿠키가 클라이언트의 브라우저 스토리지(저장공간)에 저장된다는 것을 금방 알 수 있다. 실제로 브라우저의 쿠키 저장공간을 확인해보면 쿠키가 저장되어 있는 모습도 볼 수 있다. 그렇다면 세션은 어디에 저장되는 걸까? 막연하게...

맨 위로 이동 ↑

sonarcloud

SonarCloud 적용 트러블 슈팅

September 23 2021

summary 우아한테크코스 레벨4 HTTP 서버 구현하기 미션을 진행하던 중이었다. 미션대로 구현을 완료하고 PR(Pull Request)를 작성했는데 정적분석 툴 SonarQube 가 자동으로 동작하고, 분석 결과도 PR 페이지에서 곧장 보여주고 있었다?!

맨 위로 이동 ↑

string

맨 위로 이동 ↑

trouble-shooting

Git rebase merge 트러블 슈팅

September 26 2021

babble 팀에선 프로젝트 초기 단계에서 아래와 같은 Git branch merge 전략을 사용하고 있었다.

맨 위로 이동 ↑

replication

MySQL(MariaDB) Replication with JPA

October 23 2021

🕵️ summary 개요 복제(Replication)는 한 서버에서 다른 서버로 데이터가 동기화 되는 것을 말하며, 원본 데이터를 가진 서버를 소스(Source/Master) 서버, 복제된 데이터를 가지는 서버를 레플리카(Replica/Slave) 서버라고 부른다. 소스 서버에서 ...

맨 위로 이동 ↑

JPA

MySQL(MariaDB) Replication with JPA

October 23 2021

🕵️ summary 개요 복제(Replication)는 한 서버에서 다른 서버로 데이터가 동기화 되는 것을 말하며, 원본 데이터를 가진 서버를 소스(Source/Master) 서버, 복제된 데이터를 가지는 서버를 레플리카(Replica/Slave) 서버라고 부른다. 소스 서버에서 ...

맨 위로 이동 ↑

배민다움

reading books / 배민다움

November 04 2021

책을 읽기 전에 어느 덧 우아한테크코스 교육과정에 막바지에 다다르고 자기소개서를 준비하는 11월이다. 루터회관으로 향하는 아침, 버스 안에서 ‘내가 지원하고자 하는 기업들에 대해 얼마나 알고 있지?’ 라는 생각이 머릿 속을 스친다. 멍하니 허공을 응시해보지만 시덥지 않은 생각만 떠...

맨 위로 이동 ↑

apache

Nginx vs Apache

November 10 2021

우아한테크코스 피케이의 테코톡을 참고해서 정리한 내용이다!

맨 위로 이동 ↑

web-server

Nginx vs Apache

November 10 2021

우아한테크코스 피케이의 테코톡을 참고해서 정리한 내용이다!

맨 위로 이동 ↑

scp

EC2 내부 파일 SCP로 다운로드 받기

November 24 2021

🗄️ summary 우아한테크코스 활동기간이 끝나가니 babble 프로젝트 서버에도 비상이 걸렸다. CU께서 수료일을 기점으로 모든 EC2 인스턴스를 삭제할 것이라 공지하셨기 때문이다. ‘언젠간 해야지’를 반복하며 차일피일 미루다가, 정말 일정이 얼마 남지 않아 황급하게 백업할 파...

맨 위로 이동 ↑

회고

맨 위로 이동 ↑

code-review

맨 위로 이동 ↑

우아한멀티모듈

맨 위로 이동 ↑

세미나

맨 위로 이동 ↑

terraform

맨 위로 이동 ↑

cloud

맨 위로 이동 ↑

infrastructure

맨 위로 이동 ↑

ecs

Github actions를 이용한 ECS 배포 자동화

February 14 2022

이미 ECS상에 배포환경(클러스터, 서비스, 태스크 정의)이 모두 준비된 상태에서, 애플리케이션의 변화가 일어났을 때 Github actions를 이용해 자동으로 배포를 진행하는(태스크 내부 애플리케이션 컨테이너를 교체하는) 자동화 방법을 경험해보았다.

맨 위로 이동 ↑

m1

맨 위로 이동 ↑

arm64

맨 위로 이동 ↑

x84_64

맨 위로 이동 ↑

data-class

맨 위로 이동 ↑

equals

맨 위로 이동 ↑

unleash

Unleash custom strategy를 이용한 feature toggle 변수 필터 지정

July 10 2022

feature toggle & Unleash feature toggle 이란 특정 지점에 분기를 형성하여 각 조건에 해당되는 대상에게 각기 다른 기능을 제공해줄 수 있다. 가령 “2022년 7월 1일부터 3일까지는 A기능을, 7월 4일부터는 B기능을 제공하고 싶다.” 라는 ...

맨 위로 이동 ↑

feature-toggle

Unleash custom strategy를 이용한 feature toggle 변수 필터 지정

July 10 2022

feature toggle & Unleash feature toggle 이란 특정 지점에 분기를 형성하여 각 조건에 해당되는 대상에게 각기 다른 기능을 제공해줄 수 있다. 가령 “2022년 7월 1일부터 3일까지는 A기능을, 7월 4일부터는 B기능을 제공하고 싶다.” 라는 ...

맨 위로 이동 ↑

cpu-load

맨 위로 이동 ↑

cpu-utilization

맨 위로 이동 ↑

sql

맨 위로 이동 ↑

id-strategy

JPA Enum Table ID 전략 선택

July 28 2022

간혹 레거시 코드, DB 테이블 중에 Enum 값을 테이블로 직접 만들어서 관리하는 경우가 있다.

맨 위로 이동 ↑

period

맨 위로 이동 ↑

envers

맨 위로 이동 ↑

lms

맨 위로 이동 ↑

mysql

맨 위로 이동 ↑

intellij

맨 위로 이동 ↑

gradle

맨 위로 이동 ↑

deployment

맨 위로 이동 ↑

concurrency

맨 위로 이동 ↑