본문 바로가기

전체 글

(82)
[MySQL] DB 재시작과 auto_increment의 관계성 우리 팀은 수 많은 데이터베이스 서비스중 MySQL을 사용한다. 현재 개발하고 있는 서비스에서 사용하고 있는 DB는 꽤 오래전에 구축되었는데, MySQL 5.7 버전을 사용한다. 개발하면서 MySQL 5.7 버전에서는 쓸 수 없는 기능들로 많이 고생했기 때문에 최근 8.0 버전으로 업그레이드를 진행했다. 개발대역에서 자체적으로 5.7에서 8버전으로의 업그레이드를 진행했었는데, 서비스 상의 큰 이슈도 없었고 업그레이드 하는 시간도 많은 시간을 요구하지 않았기에 QA 대역에서 그대로 진행했다. 그런데 문제가 생겼다. AUTO_INCREMENT 의 COUNTER AUTO_INCREMENT(이하 AI)는 테이블의 pk 컬럼에 적용했을 때 꽤 편리한 속성이다. 데이터베이스 엔진이 자체적으로 PK를 카운팅하며 in..
[Spring JPA] 한 트랜잭션 내부에서의 외부 API 콜과 엮인 영속성 문제 이 카테고리를 만든 이유 이 카테고리에서 첫 글인 만큼 카테고리의 이유는 여기에 한번만 적겠다. 회사에서 개발하면서 모르는 지식들을 지피티형이나 구글링을 통해 서칭하는데, 가끔 [어 이거 옛날에 한번 검색했던 기억이 나는데?]라는 생각과 함께 나의 수준에 탄식을 하는 일이 있었다. 그래서 올해부터는 머리를 탁 치고 깨달았던 개발 관련 지식을 이 카테고리에 정리할 계획이다. 회고 말고는 쓸 주제도 명확하게 정하기 힘들었는데 다행이다. 사실 올해 마지막 글이 될 수도 있음 한 트랜잭션 내부에서의 외부 API 콜 데이터 베이스를 이용해 데이터를 가공하고 서빙하는 서비스를 개발함에 있어서 트랜잭션 관리는 아주 중요한 영역이다. 성능 이슈는 그렇다 쳐도 데이터 정합성을 해치는 상황이 발생하면 안되기 때문이다. 회..
주니어 백엔드 개발자 2023년 회고 상반기 회고를 쓴지 얼마 안된 것 같은데, 정신없이 지내다보니 벌써 2023년이 지나버렸다. 지난 상반기 회고는 두서없이 생각나는 내용을 마구잡이로 써서 아쉬움이 좀 있었다. (그렇다고 고치지도 않음) 따라서 상반기를 포함해 종합적인 2023년 전체 회고글을 쓰려고 한다. 1. 넥슨에서의 플랫폼 개발자 지난 1년간 B2C/B2B 서비스 프로젝트에 참여했다. 입사해서 가장 처음으로 개발에 참여했던 서비스인 피파온라인 개인화 서비스 유어필드를 시작으로 현재는 넥슨 크리에이터즈 개발에 참여하고 있다. 회사에서 운영중인 실제 게임 트래픽에 비해선 현저히 작은 트래픽을 운영하긴 하지만, 여러 게임 유저들의 피드백을 수용하고 대 유저 서비스를 개발하는 점이 좋다. 흔히 말하는 네카라쿠배당토 같은 서비스 기업에서는 ..
넥슨 주니어 개발자의 2023 상반기 회고 https://seongmok.com/84 2022 하반기 IT 개발자 취업준비 회고 현재 나는 4학년 2학기로 학교에 재학중이다. 4학년 진학당시, 마땅히 취업준비를 위해 해놓은 것도 없었고 딱히 하고싶은 것도 없어 진로에 대해 많이 고민을 했었다. 교내에서 크고작은 프로젝 seongmok.com 이 글을 쓰고 난 이후, 정신없이 시간이 지났다. 그동안 생각보다 많은 조회수를 기록했고, 많은 분들에게 도움이 된 것 같아서 기분이 좋았담. 결과적으로, 나는 넥슨에 입사했고 현재는 7개월차 주니어 백엔드 개발자로 직장생활을 하고 있다. 원래는 취업하고 나서 코딩테스트 관련 글도 좀 써서 취준생분들에게 도움이 될만한 글을 작성하고 싶었고, Spring을 깊게 파서 deep한 주제를 다루는 글들도 쓰고 싶었는..
코딩테스트를 준비하는 효율적인 방법 IT관련 대기업, 금융권 및 유니콘 기업에 취업하기 위한 코딩테스트 준비는 선택이 아닌 필수가 되었다. 대부분의 기업의 채용 프로세스는 서류 - 코딩테스트 - 면접 순으로 이루어지기 때문에 코딩테스트에 통과하지 못한다면 면접을 볼 수 있는 기회조차 없는 것이 일반적이다. 이 글에서 코딩테스트 준비를 시작하는 학생들에게 가늘고 길게 공부할 수 있는 방법을 제시할 것이다. 그리고 이 방법은 내가 작년부터 코딩테스트를 위해 경험한 내용을 기반으로 한다. 나름 긴 시간동안 꾸준히 문제해결과 알고리즘 공부를 해왔고, 채용 단계에서 PS유형의 코딩테스트에서는 한 곳 빼고 모두 합격했었다. 글을 읽는 사람들에게 나름의 신뢰도를 제시해야 하기에 부끄럽지만 나의 백준 프로필을 근거로 올린다. https://www.acm..
2022 하반기 IT 개발자 취업준비 회고 현재 나는 4학년 2학기로 학교에 재학중이다. 4학년 진학당시, 마땅히 취업준비를 위해 해놓은 것도 없었고 딱히 하고싶은 것도 없어 진로에 대해 많이 고민을 했었다. 교내에서 크고작은 프로젝트들을 진행했지만 딱히 전문성을 갖춘 프로젝트는 없었고, 네트워크 연구실에 소속되어 Low-level에서의 프로그래밍 프로젝트도 진행해보았지만 이쪽으로 진로를 선택하고 싶지도 않았다. 그저 PS하는 것이 재밌었기에 막연한 코딩테스트 대비만을 꾸준히 해왔던 것 같다. 그렇게 4학년을 맞이했다. 터닝포인트, 소프트웨어 마에스트로 나의 학부시절에 있어 가장 큰 터닝포인트는 소마 활동이다. 사실 부트캠프성 활동에 대한 막연한 기대는 가지고 있었지만, 앞서 말했듯이 딱히 하고싶은 것이 없었던 나에게 어느쪽 분야의 부트캠프를 지..
LCS(Longest Common Sequence) 알고리즘 LCS LCS(Longest Common Sequence)는 주어진 수열들에 대해 가장 긴 공통 부분 수열이다. 예를 들어, 두 문자열 BCDAACD와 ACDBAC에 대한 공통 부분 수열들은 다음과 같다. BC, CDAC, DAC, AAC, AC, CD ... 이러한 공통 부분 수열 중에서 가장 길이가 긴 부분 수열은 CDAC이다. LCS는 $Dynamic Programming$을 이용해 접근할 수 있다. 알고리즘 동작 다음과 같은 두개의 수열 $X$,$Y$가 있다. 우선, $n = length(X), m = length(Y)$ 일 때, $(n+1)*(m+1)$크기의 dp배열이 필요하다. 그리고 다음과 같이 배열을 채운다. dp[i][j]는 $X$의 i번째 원소와 $Y$의 j번째 원소까지 봤을 때, 현재..
LINE 2022 하반기 신입 LINER 공개채용 코딩테스트 후기 지난주 24일, 카카오 코테와 같은 날 아침에 라인코테를 봤다. 라인은 히든테케에 대한 정답 유무를 알려주지 않아서 맞았는지 틀렸는지 알 수 없다는게 카카오와 다른 점이다. 2시간 30분 내에 5문제를 풀어야 하는데 생각보다 시간이 빡빡해서 풀었던 문제 반례찾을 시간도 없다.. 문제 1. 구현(실2~3) 그냥 구현하면 되는문제였다. 까다롭지 않아서 슥슥하면 풀렸다. 2. 문자열(실1) 패턴 맞는 문자열 찾는거였는데 정규식 쓰면 됐다. 근데 나는 정규식 쓸줄 몰라서 백트래킹써서 풀었다. 정규식을 생활화 하자 3. BFS(골4~3) https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1..