목록NO CODE (10)
Hanbit the Developer
무엇을 했는가? 1. 면접 경험 3번의 면접 경험을 통해 제게 부족한 점들을 깨달을 수 있었습니다. 그것들 중 가장 치명적이었던 내용은 다음과 같습니다: - Kotlin 언어에 대한 지식 부족: Android 개발에 집중하다 보니 Kotlin에 충분히 신경 쓰지 못했습니다. 이를 극복하기 위해 Kotlin 공식 문서와 'Effective Kotlin' 책을 읽고 블로그에 66개 글을 게시하며 지식을 공유했습니다. - 코드에 대한 깊은 이해 부족: 직접 작성한 코드에 대한 상세한 이해가 부족했습니다. 이를 해결하기 위해, 평소에 아무런 생각 없이 타이핑 했던 모든 코드들에 의문을 갖고 그렇게 했어야 하는 이유를 생각하고자 했고, 공식 문서를 읽거나 코드 레벨로 구현을 살펴보며, 안드로이드 프레임워크를 심층..
배경저는 카카오브레인 패스파인더 2기 인턴십 프로그램에 참여하였습니다.(2023.06.28~2023.08.29) 두 달 동안의 인턴십 프로그램을 회고하고자 이 글을 작성합니다.*패스파인더에 대한 더 자세한 내용은 카카오브레인 Blog(https://blog.kakaobrain.com/team/1253)를 참고해주세요!협업 및 커뮤니케이션저희 프로젝트에는 기술적으로 안드로이드, 프론트엔드, 백엔드, LLM 분야가 필요했습니다. 저는 팀에서 안드로이드 개발자, 프론트엔드 개발자, LLM 프롬프트 엔지니어 역할을 하였습니다.그라운드 룰 정의개발, 협업, 근무, 애자일과 관련된 그라운드 룰을 팀과 정의하였습니다.특히 “의견에 근거가 있어야 한다.”, “특정 의견으로 결정되었다면 모두가 헌신한다.”, “자유롭고 ..
처음 블로그를 시작한 건 생각을 정리하기 위함이었으나 방문자수가 생각보다 늘어 잘못된 정보가 전파될까 걱정되기 시작했다. 글의 질에 이전보다 더 신경써야 할 듯..
선발 과정에 대한 이해 소마에서 바라는 인재상을 이해하기 위해, 이전 기수분들이 블로그에 작성하신 질문들을 정리하였고 소마 홈페이지에 기술된 인재상을 살펴보았다. 소마에서 지원자에게 바라는 듯한 요소는 다음과 같았다. - 문제 해결 능력(사실 이것은 주로 코딩테스트로 파악을 합니다.) - 커뮤니케이션 및 협업 능력(애자일 방법론) - 코딩 역량 및 기술 지식(본인이 집중하는 기술 스택, AI) - 비즈니스 관련(특정 서비스가 어떻게 금전적인 가치를 창출하는지, 비즈니스 모델 등) - 적합한 지원 동기(애매하면 안 됩니다. 실제로 붙게 된다면 구체적으로 어떻게 하실 건지 미리 생각해보는 것이 도움이 많이 됩니다. 예를 들면, '지방에 살면서 대학교에 재학 중인데 어떻게 할 것인가?'와 같은 질문들입니다.)..
문제 풀이 게시글을 줄여야겠다는 생각이 든다. 기발한 아이디어로 인한 것도 아니고 어려운 응용 문제도 아닌, 웰노운 문제에 대한 글을 쓸 때 점점 할 말이 없어지는 것 같기 때문..
플레티넘 5를 달성한 김에 관련한 잡담좀 해볼게요.. 먼저 PS에 할애하는 시간을 줄이려고 합니다. 실제로 취업을 위해 코딩테스트를 보게 될 시간이 많이 남았는데, 그에 비해 PS에 시간을 너무 많이 쏟는 것 같습니다. 다음으로 레이팅 시스템은 코더들에게 좋은 동기부여를 해준다고 생각하지만 과몰입은 안 하는 게 좋을 것 같다는 생각이 듭니다. 기본적인 난이도가 그렇게 높지 않은데, 특정 알고리즘이 들어가서 티어가 급격히 오르는 상황이 정말 많습니다. 만약 제가 Segment Tree를 살짝 응용해서 푸는 플레티넘 5 문제와, 매우 깊게 고민해서 DP를 짜야하는 골드 2 문제를 푼다고 하면 후자가 훨씬 더 어렵게 느껴지는 게 현실입니다.
먼저, 프로젝트의 스케일이 상당히 크기도 하고 Client와 Server로 나뉘어 있었기 때문에, waterfall만으로는 정확히 뭐가 필요한지 파악이 힘들었다. 이에 따라 클라이언트와 서버가 너무 따로 노는 느낌이고, 상호간의 피드백도 힘들었다. 이에 따라 애자일 개발론을 적용시켰다. 스프린트를 일주일로 잡고, 하나의 큰 feature 개발을 목표로 두고, 단기 계획을 짜고 개발을 시작했다. 단기적인 작은 목표가 하나 있으니까 개발 속도가 매우 빨라진 것을 알 수 있었다. 아래는 우리 프로젝트의 커밋 인사이트이다. 참고로 스프린트는 7월 12일부터 시작하였다. 그리고 서버와 클라이언트가 모두 한 섹터를 보고 작업을 하다보니 상호간 필요한 요구사항, 버그 리포트, 피드백이 많아졌고 이는 많은 commit..
면접은 1시간 20분 정도 진행되었고, 기공지된 면접 시간인 1시간을 훨씬 초과하였다. 질문들은 생각보다 CS쪽에서 별로 나오지 않았고, 코딩이라는 분야 전반적인 지식들을 위주로 나왔다. 같이 면접을 봤던 조에서는, '그걸 모르시는 상태에선 프로젝트를 진행하기 힘들 것 같은데요?'와 같은 압박 면접 식의 질문은 나오지 않았으며, 그렇다고 매우 편한 분위기는 아니었다. 다른 면접자분들께서 대답을 잘 하는 것을 보니 나에게도 큰 자극이 된 것 같다. 참고로 면접비도 넉넉하게 주신다. [추가] 불합격 통보 당연히 면접팀마다 다 다르겠지만, 서류상 경험이 매우 부족한 나에 대해서, '기술 스택이 좀 빈약하시네요?'와 같은 날카로운 질문들이 안 나왔어서 의아했는데, 이 취약한 부분을 내가 알고 있었으므로, 그냥 ..
2차 시험은 알고리즘 3문제, SQL 1문제, Web 1문제로, 총 5문제였다. 알고리즘 3문제를 요약하자면, 모두 탐색 문제였다. 문제에 solved.ac(백준) 기준 난이도를 부여하자면, 각각 골드4, 골드3, 골드2 정도였다. SQL 문제는, 테이블 3개를 참조하는 문제여서 개인적으론 당황스러운 문제였지만, 크게 어려움은 없었다. Web 문제는 javascript 문제였고, onClick()에 함수를 달아서 조건에 따라 css style을 변경하는 문제였고, 요구사항이 많았을 뿐 쉬운 난이도였다. 나는 다 풀고 나서 20분 정도가 남아 반례 처리를 하였다. 느낀 점으로는 저번 시험에 비해 각 문제의 난이도는 약간 높아졌으나, 문제 수가 적어서 체감 난이도가 너무나도 줄었다. *추가 - 21.03.1..
총 8문제로, 앞 6문제는 알고리즘 문제, 7번 문제는 HTML, CSS 문제, 8번 문제는 SQL 문제였다. 우선 시간 제한을 두고 실전으로 하는 코딩테스트가 처음이어서 그런지, 1번 문제를 푸는데 생각이 정리가 잘 안 되었다. 고등학생 시절 엄청난 긴장감과 함께 수학 시험을 치르던 느낌 그대로였다! 아무튼 그 긴장감은 다행히, 시간이 지날수록 점차 사라져갔고 체감 난이도는 점차 줄어들었다. 지금 와서 상기해보면, 알고리즘 6문제는 전부 solved.ac 기준 실버 1~골드4 정도 난이도로 예상한다. 그리고 7번 문제는 CSS 문제였는데 정말 쉬운 문제였다. 마지막 8번 SQL 문제도 마찬가지로, 텍스트의 길이만 길었지 기초만 알면 풀 수 있을 정도의 수준이었다. 모두 풀긴 하였지만, 반례 테스트도 많..