전체 글

깃허브 https://github.com/kimtaesoo99 알고리즘 전용 블로그 https://javajoha.tistory.com/
CS

REPEATBLE READ에서의 PHANTOM READ 현상

요즘 CS스터디를 진행하고 있는데, 트랜잭션을 정리하고 있던 와중에 REPEATABLE READ에서 InnoDB는 RHANTOM READ가 발생하지 않는다는 정리글을 보았다. 내가 정리했던 글에서도 이를 찾아볼 수 있었는데 단순하게 글로만 표현되어 있어 나조차도 이해하기 힘들었다. 그래서 이를 좀 더 찾아보고 이게 무엇을 뜻하는지 찾아보고 정리하려고 글을 작성한다. REPEATABLE READ REPEATABLE READ는 동일 트랜잭션 내에서는 동일한 결과를 보장할 수 있는 격리 수준으로 MySQL의 InnoDB 스토리지 엔진에서 기본으로 사용되는 격리 수준이다. 어떻게 동일한 결과를 보장해 줄 수 있을까? MVCC(Multi Version Concurrency Control)라는 메커니즘을 이용해 언..

활동

삼성 SW 역량테스트 B형(Professinal) 합격후기 및 팁

SSAFY 11기에 입과 해 교육을 듣던 중 SW 테스트 A형 이상을 취득한 교육생에게 B형에 응시할 자격이 주어졌다. SSAFY에 입과 하기 위해 쳤던 코딩 테스트에서 A형을 취득했기 때문에 B형에 응시할 수 있었다. 2/17, 3/9, 3/16 총 3회의 응시 기회가 있었고, 가장 처음 열린 2/17 시험을 신청했다. 삼성전자 SW 역량 테스트란? 삼성 SW 역량테스트는 삼성에서 주관하는 코딩테스트라고 보면 된다. 예전에는 SWEA에서 상시 검정을 통해 시험을 신청해서 응시했지만 코로나로 인해 상시 검정이 막히고 현재는 삼성전자, 삼성 SDS 알고리즘 특강 수강생 혹은 SSAFY 교육생, 삼성 임직원 등 특정 조건을 만족해야 응시 기회가 주어진다. 삼성 SW 역량 테스트는 A형(Advanced), B..

활동

[SSAFY] 11기 웰컴 키트 언박싱

저번주에 입학식을 하고 웰컴키트를 받았다. 원래 받은 당일에 블로깅을 하려 했으나 너무 바빠서 미루게 되었다. 마침 인증 이벤트도 하기에 바로 글을 작성하기로 하였다. 내가 받은 웰컴키트는 이미 개봉을 하여 같은 반 형에게 부탁하여 이쁜 사진을 받을 수 있었다. 웰컴키트 박스부터 내용물이 궁금해지는 비주얼이다. 내부를 살펴보면 아래와 같았다. 개인적으로 1일 1 커밋 스티커가 너무 이쁘다. 그 뒤에는 텀블러와 에코백 셀카봉이 들어있었다. 싸 피마크가 전부 붙어있었다. 개인적으로 물을 자주 마시기에 텀블러가 제일 마음에 들었다. 코테를 볼 때마다 셀카봉이 없어서 고생했는데 매우 유용하게 쓰일 것 같다. 추가로 후드티와 티셔츠를 받았다. 후드티의 경우에는 검은색, 흰색, 파란색이 있는데 모두 이쁜 것 같다...

개발일기

[개발일기#12] 새로운 시작

개발일기(24.1.1) 벌써 24년이 되었다. 12월에는 거의 놀거나 쉬었던 것 같다. 어제도 밤새 술을 마시며 마지막 23년을 보냈다. 개발공부를 시작하고 나서 처음으로 아무런 걱정 없이 실컷 놀았던 달인 것 같다. 다른 글에서도 작성했듯이 싸피에 합격하였다. 다른 사람들과 같이 공부할 생각에 조금은 설레기도 한다. 당장 내일부터 싸피가 시작되는데 통학을 할 예정이라 생각보다는 힘들 것 같기도 하다. 그래도 많은 것을 배울 수 있을 것 같아서 좋다. 그동안 내가 원하는 목표를 이루었는지 생각해 보면 어느 정도는 달성한 것 같다. 그래서인지 23년도가 크게 아쉽지는 않은 것 같다. 운동도 꾸준히 하고 공부도 꾸준히 했다고 생각한다. 24년도에는 이제 싸 피에서 많은 것을 배우면서 취업준비를 할 생각이다...

활동

싸피 11기 합격 후기(전공자, 면접 스터디X)

지원 동기 싸 피가 돈도 지원해 주고 다른 사람들과 함께 네트워킹을 통해 성장할 수 있다는 점에서 매력적으로 다가왔다. 현재 나는 프로젝트가 많이 부족하다고 생각했다. 따라서 나의 부족한 점을 채우고 다른 사람들과 같이 소통하며 성장하고 싶어서 지원했다. 에세이 나는 프로젝트나 다른 스펙을 어필하지 않았다. 그저 내가 이곳에 지원한 이유와 그에 대한 타당한 이유를 설명하는 느낌으로 작성했다. 앞선 지원 동기와 같이 소통을 키워드로 작성했다. 에세이 자체가 500~600자이기에 그냥 담백하게 작성한 것 같다. SW 적성진단 준비 우선 알고리즘 준비를 따로 하지 않았다. 애초에 원래 매일 알고리즘을 풀기 때문에 따로 더 문제를 풀 이유가 없었다. 이러한 자신감 덕분인지 코테 시작 20분 만에 모든 문제를 풀..

활동

현대 소프티어 3기 합격 후기

지원 사실 현대 소프티어의 존재를 알지는 못했다. 어쩌다가 오픈채팅방에서 홍보를 하여 알게 되었는데 생각보다 괜찮다고 생각했다. 그래서 경험도 쌓을 겸 지원하게 되었다. 지원분야가 현대 자동차와 오토에버 2개가 존재했다. 나는 현대 자동차가 더 익숙해서 현대 자동차를 지원했다. 1차 코딩 테스트 코딩테스트는 구름 플랫폼에서 온라인으로 이루어졌다. 신기하게도 오픈북이라 참고하면서 할 수 있었다. 총 7문제로 이루어져 있었다. 난이도는 정석적인 문제 몇 개와 까다로운 문제가 많았다. 또한 문제가 이미지 파일로 올라와서 가독성이 안 좋았다. 게다가 처음 접속했을 때 이미지 파일이 보이지 않아서 시간이 지연되기도 하였다. 또한 아직도 이해가 안 되는 문제가 남아있다. 분명 요구한 대로 푼 거 같은데 왜 테케 답..

CS

네트워크 기본 정리

네트워크란? 노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합 노드: 서버, 라우터, 스위치 등 네트워크 장치를 의미 링크: 유선, 무선을 의미 처리량 처리량은 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼마 큼의 트래픽을 처리했는지를 나타냄 단위는 bps를 사용함 - 초당 전송 또는 수신되는 비트 수 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙 등에 영향을 받음 지연 시간 지연 시간은 요청이 처리되는 시간을 의미함 네트워크 토폴로지 네트워크 토폴로지는 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미 트리 토폴로지: 트리 형태로 배치한 네트워크 구성 노드의 추가, 삭제가 쉬움 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있음 버스 토..

JAVA

[JAVA] 크리스마스 프로모션을 구현하면서 배운점

마지막 미션은 새로운 주제의 미션이었다. 이번에도 그전과 동일하게 회고의 느낌으로 작성할 예정이다. 내가 고민한 점과 적용한 점 수정했던 부분 및 이유를 작성할 것이다. 고민거리 이번에 enum을 적용해야 하는 상황이 거의 필수적으로 일어났다고 생각했다. 그래서 이를 적용했는데, 문제는 얼마나 나눌 것인가에 대한 고민이었다. 처음에는 카테고리마다 전부 나누고 메뉴판에서 통일하는 방식을 생각했다. 하지만 이러한 방법은 복잡도가 올라간다는 생각도 했고, 입력으로 들어온 값을 찾기가(이름으로 매칭되는 값) 번거롭다는 느낌을 받았다. 물론 분리가 잘되어있다는 생각이 들긴 함. 그래서 한눈에 보기에도 편하고 매칭되는 값을 찾기도 편하게 전부 모아서 관리하였다. 물론 정말 확장 가능성도 생각한다면 다른 방법이 더 ..

JAVA

[JAVA] 로또를 구현하면서 배운점

우아한테크코스 6기 프리코스 3주 차는 로또였다. 이번에도 그전과 동일하게 회고의 느낌으로 작성할 예정이다. 내가 고민했던 부분과 적용한 점 수정했던 부분을 이유로 작성할 것이다. 미션에서 Randoms.pickUniqueNumberInRange를 사용해야 했기에 이를 먼저 분석했다. validate를 통해 검증을 거치는데, 이때 validate 메서드의 이름이 validateRange로 되어있었다. 네이밍에 대한 고민이 많던 나에게는 큰 도움이 되었다. 범위 내의 숫자를 담고 셔플을 통해 섞은 다음 필요한 크기로 잘라내는 로직이었다. 이런 역할 분리를 보고 각각의 메서드가 하나의 일만 수행하며 적절히 분리되어 있다고 느꼈다. 그동안 정적 팩토리 메서드를 사용하는 모습과 거의 동일하여 이대로 진행하면 되..

JAVA

[JAVA] 자동차 경주를 구현하면서 배운점

우아한 테크코스 6기 프리코스 2주 차는 자동차 경주였다. 이번에도 저번 숫자 야구 게임에 이어서 회고의 느낌으로 작성할 예정이다. 내가 했던 고민과 수정했던 부분에 대한 이유를 주로 작성할 것이다. 고민거리 미션 중에 시도 횟수만큼 반복을 하는데, 이때 이 시도 횟수를 어떻게 처리할지에 대한 고민을 했다. 정확히 말하자면 나는 시도 횟수는 양의 정수여야 한다고 판단했다. 그렇다면 이 값에 대한 검증이 존재해야 하는데 이를 어디서 진행할 것인가? 나는 총 3가지를 고민했다. 첫 번째는 InputValidator였다. 즉 inputView를 받자마자 이를 예외를 검증하는 것이다. 하지만 이는 단순히 시도 횟수만을 위한 검증이라는 생각이 들기도 하였고, InputValidator는 빈 값만 체크하도록 전체 ..

javajoha
기록하는 개발자가 되자