2025/02 10

[Level 2 | Python] 서버 증설 횟수 (2025 프로그래머스 코드챌린지)

https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제서버를 게임 이용자의 수에 맞게 자동으로 scale-out 가능하게 구현하는 문제이다.m=3이고 k=5 일 때의 시간대별 증설된 서버의 수와 증설 횟수 예시이다. (그냥 증설된 서버의 수 list로 만들면 끝나겠는 걸?)    시각게임 이용자의 수증설된 서버의 수증설 횟수0 ~ 10001 ~ 22002 ~ 33113 ~ 43104 ~ 51105 ~ 62106 ~ 70107 ~ 80008 ~ 90009 ~ 1000010 ~ 1141111 ~..

[Level 2 | Python] 완전범죄 (완탐 + 더 효율적인 코드)

https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제A도둑이랑 B도둑이 팀을 이루어모든 물건을 훔치려고 하는데, 물건을 훔칠 때마다 각각 흔적을 남긴다. 흔적이 A,B 각각 n,m이 되면 경찰에게 발각되는데 둘 다 발각되지 않고 A가 최소한으로 흔적을 남기는 경우를 구해야 한다. (A도둑이 B도둑보다 형님인가보다..)제한 사항제한사항1 ≤ info의 길이 ≤ 40info[i]는 물건 i를 훔칠 때 생기는 흔적의 개수를 나타내며, [A에 대한 흔적 개수, B에 대한 흔적 개수]의 형태입니다.1..

Database Replication

Database Replication이란?레플리케이션(Replication)은 실시간 복제본 데이터베이스 서버를 운영하는 것을 의미한다. 기준이 되는 서버를 마스터(master) 서버라고 하고, 마스터 서버와 동일한 내용을 갖는 또 다른 서버를 ‘레플리카(Replica)`라고 한다.Master - Slave 관계다양한 용어원본 서버 : Master, Main, Primary, Publisher, Active레플리카 서버 : Slave, Standby, Secondary, Subscriber왜 나왔을까?기본적으로는 데이터 안정성 때문이다.(크게 3가지 부하분산(Load Balancing), 고가용성(High Availabilty), 백업 등)생각해보자.1. 만약 어떠한 원인으로 인해 데이터가 손상 되었다면..

CS/Database 2025.02.24

[Level 3 | Python] 미로 탈출 명령어

https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제......S.E... 왼쪽, 오른쪽, 위, 아래는 문자열 l,r,u,d 로 표현된다. 예를 들어 왼쪽 한칸, 위한칸, 왼쪽 한칸 이면 `"lul"`로 표현된다. S에서 E로 가고 싶다. 갔던 곳 중복 가능하니까 k번 움직여서 E에 딱 도착해야 한다. 가능한가? 불가능한가?가능하면 표현된 문자열에서 사전 순으로 가장 빠른 경로로 탈출해야 한다. 불가능하면 "impossible"풀이 과정처음에는 dfs로 완전탐색을 돌려서 depth 기준을 k..

[Level 2 | Python] 요격 시스템

https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제A 나라가 B 나라에 미사일을 보낸다. 이 세계관은 2차원 공간이다. X축과 평행한 방향으로 미사일이 떨어진다. 요격 미사일은 Y축과 평행하게 날라가고 그 위치에 있는 적 미사일들을 다 요격할 수 있다. 요격해서 미사일을 안 맞을 수 있는 최소한의 요격 미사일 갯수 구하기 문제이다. 풀이 과정그리디 문제이다.x좌표를 나타내는 정수 쌍 (s,e) 형태로 주어지는데 어차피 s가 e보다 크면 같이 요격할 수 없고 요격 미사일을 하나 더 써야 한다..

[Level 2 | Python] 호텔 대실

https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제최소한의 객실만을 사용해 예약 손님을 받아야 한다. 청소 시간으로 인해 사용 후 10분 후 다음 손님 이용이 가능하다.풀이 과정그리디 문제이다. HH:MM 형태를 모두 분 형태로 바꿔주고 대실 시작 시간을 기준으로 정렬해준다. heap에는 대실 시간이 끝나는 시간을 기준으로 최소힙을 만들어서 비교해서 answer+=1 해주면 끗 시간복잡도 계산정렬에 필요한 O(NlogN) + 힙 연산 O(NlogN) = O(NlogN) import heap..

[MySQL] 스토리지 엔진 수준의 잠금(LOCK)의 종류

https://jinsang-2.tistory.com/120 [MySQL] 트랜잭션 격리 수준(Isolation Level)https://jinsang-2.tistory.com/119트랜잭션의 특징 4가지, ACID중에 Isolation Level에 대해 이야기 해보려 한다.  트랜잭션(Transaction)트랜잭션(Transaction)이란??트랜잭션은 데이터베이스에서 수행되는 "작업의jinsang-2.tistory.com트랜잭션 격리 수준을 공부하기 위해 필요한 배경지식들이 있어서 정리해 놓습니다.MySQL 락 MySQL에서 사용되는 락은 크게 스토리지 엔진 레벨과 MySQL 엔진 레벨로 나뉘어 진다.스토리지 엔진 레벨의 잠금은 테이블의 데이터를 다루기 위한 락이다.MySQL 엔진 레벨의 잠금은 테이..

CS/Database 2025.02.18

[MySQL] 트랜잭션 격리 수준(Isolation Level)

https://jinsang-2.tistory.com/119트랜잭션의 특징 4가지, ACID중에 Isolation Level에 대해 이야기 해보려 한다.  트랜잭션(Transaction)트랜잭션(Transaction)이란??트랜잭션은 데이터베이스에서 수행되는 "작업의 논리적 단위"를 말한다.“더 이상 분할이 불가능한 업무처리의 단위”라고도 말한다. 하나의 작업을 위해 더 이상 분할jinsang-2.tistory.comACID - I = 독립성(Isolation)둘 이상의 트랜잭션이 동시에 실행되고 있을 경우 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다. 하나의 트랜잭션이 다른 트랜잭션에게 영향을 주지 않도록 격리되어 수행되어야 한다. 예시 : 다른 트랜잭션이 계좌 A의 잔액을 읽는..

CS/Database 2025.02.18

트랜잭션(Transaction)

트랜잭션(Transaction)이란??트랜잭션은 데이터베이스에서 수행되는 "작업의 논리적 단위"를 말한다.“더 이상 분할이 불가능한 업무처리의 단위”라고도 말한다. 하나의 작업을 위해 더 이상 분할될 수 없는 명령들의 모음이며 즉 한꺼번에 수행되어야 할 일련의 연산모음을 의미한다.이 모든 작업이 완료되거나(Commit), 실패하여 취소(Abort)되어야 한다.참고예를 들어 SELECT문, INSERT문 이렇게 명령문마다 하나씩 트랜잭션의 작업의 단위가 아니라는 것작업 단위는 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미트랜잭션의 작업의 단위는 SQL 한 문장이 아님!!예시 : 은행 계좌 이체(A계좌→B계좌)계좌 A에서 100만원 출금계좌 B로 100만원 입금이 두 작업은 하나의 트랜..

CS/Database 2025.02.18

나의 사명

그리스도인으로서의 나의 사명과 소명을 깨달았던 이야기에 대해 글을 써 내려가보려고 한다. 백수 경력 "2년 6개월"급여도 좋고 안정적인 회사에서 일도 잘하고 인정도 많이 받았지만 "개발자가 되겠습니다!!" 하고 2022년 7월 29일에 박차고 나온지 벌써 2년 6개월이 되었다. 2025년 2월 14일 현재, 아직도 개발자로 취업하지 못하고 있는 나에게 어떠한 소명과 하나님께서 나를 향한 어떠한 계획이 있으실까?? 현재까지의 짧은 나의 삶의 이야기일단 나의 신앙의 서사는 모태신앙으로서 "못해신앙"을 해온 사람이다. 세상에서 속했고 재밌다고 하는 것은 빠지지 않고 하며 술, 게임, 도박 등 도파민에 미친 사람이었다. 회사를 그만 두고 2022년 10월에 PBS(Personal Bible Study)를 시작했..

끄적끄적.. 2025.02.14