ParkJinHong

데이터베이스의 트랜잭션 격리 수준 4가지

0. 트랜잭션의 격리 수준이 필요한 이유 트랜잭션의 격리 수준이 4가지나 존재하는 이유는 같은 데이터에 동시에 접근했을 때, 데이터의 일관성과 정합성, 무결성을 보장하기 위해서다. 현재 진행하고 있는 프로젝트의 특성을 고려하지 않고, 무턱대로 격리 수준을 높이면, 불필요하게 데이터베이스의 성능이 낮아지고, 격리 수준을 너무 낮추면, 많은 동시성 문제...

SW마에스트로 15기 2차 코딩테스트 복기

SW마에스트로 15기 2차 코딩테스트 복기 문제는 총 5문제였고, 알고리즘 4문제, SQL 1문제가 나왔다. 난이도는 체감상 1차보다 훨씬 어려웠다. 난이도가 높아서 내 실력으로는 가늠할 수가 없었다. 최소 평균 골드3 정도? 제한시간은 1차 때와 똑같이 문제당 10초였고, 메모리는 2GB였다. 시험시간은 똑같이 총 120분이었다. SQL을 먼저 푸...

SW마에스트로 15기 1차 코딩테스트 복기

나의 첫 코딩테스트 문제는 총 5문제였고, 알고리즘 4문제, SQL 1문제가 나왔다. 난이도는 생각보다 쉽게 나왔다. 체감상 브론즈2~골드5 정도였던 것 같다 제한시간은 문제당 10초였고, 메모리는 2GB였다. 백준에서는 많아봐야 512MB였는데 2GB나 줘서 편안하게 풀었던 것 같다. 시험시간은 총 120분이었다. SQL을 먼저 풀었고, 알고리즘...

최단 경로

최단 경로 말 그대로 가장 짧은 경로를 찾는 알고리즘 학교 알고리즘 수업시간에 다익스트라 알고리즘과 플로이드 워셜 알고리즘 이 두 가지를 배웠었는데, 이코테에서도 이 두 가지를 설명하고있다. 한 지점에서 다른 특정 지점까지의 최단 경로를 구해야하는 경우 - 다익스트라 알고리즘 모든 지점에서 다른 모든 지점까지의 최단 경로를 구해야하는 경우 -...

정렬

정렬 데이터를 특정한 기준에 따라서 순서대로 나열하는 알고리즘 이코테에서는 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 이렇게 4가지의 정렬 알고리즘을 다루고 있다. 사실 처음에는 파이썬 sort() 함수를 쓰면 끝 아닌가? 라는 생각을 했었는데, 백준에서 정렬 알고리즘 문제에서 계속 막히는 부분이 생겨서 학교 알고리즘 수업에서 배운 몇 가지 정렬 ...

동적 프로그래밍

동적 프로그래밍 학교 알고리즘 수업시간에 배운 동적 계획 알고리즘을 적용해보기 위해서 백준 사이트에 동적 프로그래밍 문제 위주로 풀어보았다. 리스트에서 다음 요소를 어떻게 셋팅할 것인지의 점화식을 세우고 고민하는 과정이 정말 재미있었다. 백준 - 1로 만들기 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨...

구현

구현 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제 이코테에서는 이 유형에서 완전 탐색과 시뮬레이션을 다루고 있는데, 완전 탐색은 모든 경우의 수를 주저 없이 다 계산하는 해결 방법을 의미하고, 시뮬레이션은 알고리즘을 한 단계씩 차례대로 직접 수행해야하는 문제이다. 구현에서는 채점 환경을 고려하는 것이 중요하다. 특히 파이썬은 C/C+...

그리디 알고리즘

그리디 알고리즘 당장 좋은 것만 선택하는 알고리즘 그리디 알고리즘은 전체적으로 최적의 해를 보장하지는 못하지만, 그 순간에 대해서는 최적인 알고리즘이다. 따라서 각 단계의 선택이 최종적인 결과에 미치는 영향을 고려하지 않고 진행된다. 실전문제 이코테-그리디 알고리즘에는 3문제가 수록되어있는데 모두 어렵지 않게 해결할 수 있었다. 문제의 목적만 잘...