
항해를 떠나서 이 길을 고민하고있는 많은 사람들에게 도움이 되길 바라며, 최대한 내가 느낀대로 가감없이 솔직하게 작성한 항해99 기간의 회고 ✍🏻 01 | 시스템 엔지니어가 개발자가 되기까지 시스템 엔지니어로 약 3년간 근무했고 이제 20대 후반의 나이에 접어든 시점에 전직을 꿈꾸는 일은 생각보다 고민이 많이 되는 일이었다. 이제 어느정도 경력도 쌓았겠다 편하게 큰 기업 운영으로 가면되지 or 오늘의 몸값이 제일 비쌀텐데 공부하는 동안의 경력단절 괜찮겠냐 등 많은 기대를 받았던 만큼 ? 많은 걱정도 받았던 것 같고,, 그로 인해서 더 선택할때 꽤 오랜시간을 고민했던 것 같다. 하지만 지금이 아니라면 더욱 더 하기 어려울것이라고 생각이 들었고, 공부해보고나서 이길이 아니라면 돌아가도 늦지않겠다 생각했고 가..
📌서비스 원페이지 Notion https://www.notion.so/PIN-TABLE-3985986345c640969a8a8a5c3cabb3e1 [PIN-TABLE] 스토어 웨이팅 플랫폼 💁🏻♂️ 01 | 프로젝트 소개 [Pin-Table] www.notion.so 📌 Team Notion https://www.notion.so/Pin-Table-f3dbbfb5b8b546e186122be5fa2694e9 📌 Github https://github.com/pirate99-FinalProject Pintable Pintable has 3 repositories available. Follow their code on GitHub. github.com 📌 블로그 포스팅 https://kyuu-ng.tist..

아키텍처 구성 시 대용량 트래픽을 부하분산을 할 수 있도록 설계를 하였고, 드디어 성능을 테스트해볼 차례!! 챌린지의 꽃은 아무래도 대용량 트래픽 부하분산이 아닐까 싶다 🤔 🖥 목표 - 주말이나 특정 기념일의 경우 서비스 이용자가 증가하게되는데, 대용량 트래픽이 발생할 것을 대비하여 시스템 정상 동작 작동 여부 확인 및 응답 성능 확인을 위함 - 최대 5000 User 2% 이하의 오류율로 서비스를 하고자 함 🎒 기술적 선택 시스템 부하 분산을 위해 적용한 기술 스택 Scale-Out (AWS EC2) 사용 이유 : 한 대의 Ec2 리소스를 증가(Scale-Up)시켜서 성능향상을 할 경우 장애 상황 발생 시 장애 대처에 어려움 📈 시스템이 정상화 되기 전 다운타임 발생이 불가피함 EC2를 2대로 운용하여..

실전에 들어오면서 처음으로 겪어보고 많이 고민했던 부분인 동시성 제어 🤔 어떨때 동시성 제어가 필요하고, 어떻게 제어해야할까?!에 대해 엄청나게 많이 고민했던 것 같다. 동시성 제어 왜 필요한데? 💁 핀테이블은 예약과 스토어 정보 조회 등 여러 기능을 제공하는데, 이중에서 대기자 등록과 스토어 정보 갱신 부분에서 동시성 오류가 발생하였다. 동시성 오류는 어떠한 공유 자원에 동시에 작업이 이루어질 때(insert, update, delete 등) 실행 순서가 뒤죽박죽이 되면서 오류가 생기는것이였는데 동시성 제어를 통해 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 해주어야했다. 그럼 공유자원을 쓰는곳에는 다 Lock을 걸면 되는거 아니야? 🙅🏻 동시성 오류가 발생하는 부분에 모두 Lock을 걸어서 ..

프로젝트를 시작하면서 팀장으로서 제일 고민이 많았던 부분은 어떻게 해야 효율적인 업무 분배를 할 수 있을까? 이 기능은 어떤 분께 맡기는게 좋을까? 였다. 항해 특성 상 프로젝트 기간이 길지않아서 효율적인 분배가 필요하고, 팀원분들 모두 잘하시는분이지만 우리는 약간 밀짚모자해적단st여서 각자 개성이 있는 사람들로 엮여있어서 역할 분배가 많이 중요했다. 검색 성능 부분은 어떻게보면 우리 프로젝트에서 코어기술 중에 코어기술이였다고 볼 수 있는데 이 부분은 우리 나미 상훈님께 부탁드렸다! 상훈님은 이 당시 select 쿼리정도 알고 계셨는데 상훈님께 검색성능을 부탁드렸던 이유는, 6주간 지켜봤을 때 상훈님은 어떤 어려운일도 시간만 드린다면 어떻게든 해내는 분이셨기 때문에 상훈님에 대한 무한신뢰가 있었다 🙂 검..

최종발표까지 하고 난 이 시점에 회고하면서 생각하자면 정녕 챌린지에는 프론트 팀원이 필요없는것이 맞는가? 하는 의문이 든다. 분명 시작할때는 "프론트적인 요소는 정말 아무것도 없어도 돼요! 버튼 하나만 있어도 됩니다!" 하셨지만 인간의 심리라는게 멋있고 예뻐보이는 프로젝트에 관심이 있지 버튼 하나만 있는 프로젝트 ,, 누가 깊이 들여다 봐줄까 ,, 쏟아지는 최종 발표회에서 시선을 끄려면 프론트적인 부분도 절대 포기할 수 없다고 생각했고, 챌린지팀이라는 존재를 모르는 관람객이 보았을 때 "여기는 화면이 왜이래?"라는 소리를 듣지 않는것이 내 목표고 바램이였다 이 시간에 조금 더 챌린지적인 부분을 꼼꼼히 하는게 좋지 않을까?라는 생각도 잠깐 했지만 어쩔수 없이 보여지는 화면이 부실하면 프로젝트의 완성도가 낮..

데이터 수집을 하면서 두번째로 고민했던 부분은 아키텍처 설계 부분! 그동안 좋아보이는 기술들을 아무런생각없이 그냥 가져다 썼다면 실전 프로젝트에서는 어떠한 기술을 선택할 때 끈적하게 고민해보고 이 기술을 꼭 사용해야하는 이유를 생각한 후 선택하기로 했다. 내가 아키텍처 설계 시 중점을 두고 고민했던 부분은 아래와 같다. 1. 매번 기능을 만들 때 마다 배포를 내가 직접해야한다면 ?.. 난 프로젝트 기간 내내 배포만 해야할 것이다. 2. 대용량 트래픽을 발생시키고 버틸 수 있는 안정적인 서비스를 구현하려면 어떻게 해야할까? 3. 검색 성능을 향상하려면? 어떤 방법이 있을까? 시스템 엔지니어를 했던게 이런 부분에서 조금은 도움이 되지 않았을까 싶다 🥺 개발적인 아키텍처는 아직 잘 몰라도 인프라 적인 부분에서..

실전 프로젝트가 끝나고 그동안 정리해뒀던 고민들의 조각모음을 포스팅 하려고 함 ✏️ 하면서 그때그때 정리하고나서 올리고 싶었지만 .. 더이상 우리 프로젝트의 생각과 아이디어들을 빼앗기고싶지않았음 :( 젭알 그만가져가~!!!!!!! 나도 힘들게 생각한거라구우우우~!!!!!!!!! 서비스 기획 챌린지팀에 기획에 있어 가장 중요한점은 이러한 주제를 선택 했을 때 "1000만건의 데이터를 수집할 수 있는가?" 였다. 첫주에 기획을 할 때 팀원분들이랑 하루에 8시간 넘게 과장 안하고 정말 하루종일 얘기했다고 해도 과언이 아니였다. 이건 어떨까요? 저건 어떨까요? 좋은 아이디어가 많이 나왔었는데 1000만건의 데이터를 수집할 수 있는 주제는 생각보다 많지 않았다. 찾다찾다 이전 기수의 기록지를 찾기도했었는데 정한 ..

항해99 1주차 항해일지 회고록 전주 약 3년간 재직하던 회사를 퇴사한 후 일주일간의 안식주간을 가진 후 오늘부터 항해99 사전 학습을 시작하였다. 항해 99의 사전학습기간동안은 웹 개발 종합반과 주특기(java) 맛보기를 진행할 예정 😉 꾸준히 작성할 수 있을지 모르겠지만 오늘부터 작심 3주라도 ! 화이탱 🔥 | 웹개발 종합반 - 1주차 📍 수업 목표 서버와 클라이언트의 역할에 대해 이해 HTML,CSS의 기초지식 이해, 부트스트랩 사용법 익히기 Javascripts 기초 문법 익히기 (1) 서버와 클라이언트 브라우저는 사용자의 행위에 따라 약속된 API를 호출하여 요청을 보내고, 서버로부터 수신받은 HTML을 그려주는 역 데이터만 받을 경우에는 JSON 형태로 데이터만 전달받아서 기존 데이터를 치환함..