목차 역시나 심리적 안전감은 중요했다. 이직을 고민하며 느낀점들 말하기 능력은 중요하다 글을 끝까지 완성시키는게 왜이리 어려운지.. 마치며 어느새 취업한지 1년이 지나 2년차 개발자(?)가 되었다. 총선 덕에 간만에 평일에 쉴 시간이 났고, 집에서 나와 투표를 하고 뭘 할까 고민하다가 2년차가 된 기념으로 1년차를 회고하는 ...
High Availability in REDIS (1) - Sentinel
Redis에서는 Sentinel, Cluster 구성을 지원하여 고가용성을 보장합니다. 오늘은 고가용성이란 무엇인지, 레디스의 sentinel, cluster 구성에서는 어떻게 고가용성을 보장하는지에 대해 알아보겠습니다. 고가용성(High Availability)이란? 먼저 가용성이란 uptime / (uptime+downtime) 즉, 서비스가 얼...
내가 만든 서버 성능 개선하기(아마도)
프로젝트 간단 소개 현재 진행중인 사이드 프로젝트는 롤링페이퍼 서비스이다. 기획자 1명, 프론트 1명, 백엔드 2명이서 진행중이며 내가 맡고 있는 부분은 유저가 롤링페이퍼를 작성하고 있을 때 다른 유저의 작업내용을 실시간으로 확인할 수 있게끔 해주는 서버제작을 담당하고 있다. 웹소켓 서버를 구성하여 같은 롤링페이퍼에 참여중인 유저들끼리 데이터를 주고...
나의 첫 회고록, 2022년을 돌아보자
목차 나의 2022년에는 무슨 일들이 있었나 소집해제와 동시에 막학기 GDSC 수료 취준,, 그리고 취업..! 2022년 아쉬웠던 점이 있다면? 2023년을 다짐하다 2023년에 꼭 배워보고 싶은 것들 나의 2022년에는 무슨 일들이 있었나 ...
[Go] strings package 파헤치기 (상)
예전부터 오픈소스를 까보고 분석하는 글을 꼭 써보고 싶었는데 이번 글을 시작으로 종종 올리게 될 것 같습니다. 첫 글이니까 가장 많이 쓰이면서 쉬운 편에 속한다 생각되는 문자열을 다루는 패키지 strings 대해 알아봅시다! 목적 내가 고언어를 다루다가 문자열을 다뤄야 할 때 보고 금방 되새김질하기 위함. 따라서 strings의 모든 기능에 대...
2022 넷마블컴퍼니 공채 최종합격 후기
10월 6일. 2022 넷마블컴퍼니 신입사원 채용공고가 떴고 나는 넷마블 본사의 소프트웨어 엔지니어 직무에 지원을 하게되었다. 2022 넷마블 공채 내가 지원한 직무는 본사 소프트웨어 엔지니어 서류전형 이때까지만 해도 내가 최종합격을 하게될 줄 누가 알았으랴.. 나의 깃헙/블로그 주소와 함께 게임 산업에 관심을 갖게 된 이유, 기술...
내가 되고 싶은 개발자
개발자가 되기로 한 이유 내가 개발자가 되기로 한 이유는 게임을 만들기 위해서였다. 고등학교 때 게임을 만드는 사람이 되고 싶다는 생각이 들었고 제대로 돌아가지도 않는 컴퓨터로 유니티 공굴리기 튜토리얼을 돌려보면서 프로그래밍의 존재를 알게 되었다. 그래서 혼자 윤성열의 열혈 C 프로그래밍 책을 사 읽어보곤 했었다. 그렇게 나의 꿈은 인디게임 개발자가...
Clustered Index vs Non-Clustered Indexes
Index? 클러스터드/넌클러스터드 인덱스가 뭔지 알아보기 전에 인덱스에 대해 간단히 정리하고 가보자. 인덱스는 데이터베이스에서 내가 원하는 값을 가진 데이터를 빠르게 찾게 해주는 자료구조이다. 보통 검색을 위해 사용하는 알고리즘에는 대표적으로 이진 탐색, 해시 탐색 등이 있는데 데이터베이스의 특성상 딱 원하는 값을 찾는 where age = 25와...
[번역/요약] 협업을 위한 REST API Best Practices
먼저 이 글은 REST API Best Practices – REST Endpoint Design Examples by Kolade Chris 아티클을 번역 및 요약한 것을 알립니다. 이전 진행했던 팀 프로젝트에서 팀원들에게 도움이 되고자 노션에 번역, 요약해놨던 글을 거의 그대로 옮겨왔습니다. 협업이 처음인데 RESTFUL함이 확실히 뭔지 모르...
[Go] sql.Open()은 정말로 디비와의 커넥션을 만들까?
고 언어로 짜여진 서버사이드 코드를 보면 아래와 같은 코드를 빈번히 볼 수 있다. func main() { ... conn, err := sql.Open(config.DBDriver, config.DBSource) if err != nil { log.Fatal("fail to connect db: ", err) ...