티스토리 뷰
2024년 08월 백엔드 챌린지 간단 요약
백엔드 포지션의 업무는 무엇일까?
단순하게 말해, '프로그래밍'으로 '문제를 해결'해야 하는 직무입니다.
그렇다면, 개발 시장에서 신입보다 경력직이 경쟁력을 갖춘 이유가 무엇일까요?
프로그래밍은 문제를 해결하는 것이라고 말했습니다. 그렇기 때문에 기술에 대한 이해도, 개발 환경에 이해도, 도메인 이해도 등 회사에서 개발 환경을 경험하고, 실제로 기능을 만들어 본 개발자가 유리한 것 입니다.
즉, 경력직의 경험은 '회사의 비즈니스 문제를 해결'하는 것에 있습니다.
객체 지향 설계 원칙 준수
각 도메인 객체를 명확히 분리하여 책임을 부여해야 합니다.
예를 들어, Order 클래스는 주문 자체를, OrderLine 클래스는 개별 주문 항목을, ShippingInfo 클래스는 배송 정보를 관리하도록 하는 것처럼 말입니다.
'SOLID' 원칙 중 단일 책임 원칙(Single Responsibility Principle)을 지킨다면?
- 확장성: Order 클래스에 새로운 상태나 배송 정보를 추가하는 것이 비교적 간단
- 유연성: 상태 전환, 주문 취소, 배송 정보 변경 등 다양한 시나리오를 쉽게 처리 가능
- 재사용성: ShippingInfo, OrderLine과 같은 클래스를 다른 컨텍스트에서도 재사용 가능
개념모델
'문제를 순수하게 분석한 결과물'을 말합니다.
데이터 베이스, 트랜잭션 처리, 성능, 구현 기술 등을 고려하지 않습니다. 그리고 이는 도메인의 핵심 개념을 나타내는 추상적인 모델을 말합니다.
구현모델
'개념 모델을 구체화하여 실제 코드로 구현 가능한 형태로 전환한 모델'을 말합니다.
이는 데이터 베이스, 성능, 트랜잭션 처리 등을 고려합니다.
개념 모델에서 구현 모델로의 전환 과정의 필요성은 언제 느낄 수 있을까요?
개념 모델은 그대로 코드로 사용하는 부분에서 비즈니스 로직을 모두 충족하기 어려움이 있습니다. 소프트웨어 개발 중 도메인에 대한 이해가 변화되기 때문에 다양한 확장성이 고려되어야 합니다.
프로젝트 초기의 도메인 지식은 시간이 지나면 보완됩니다.
포트폴리오 프로젝트 시작
포트폴리오 프로젝트를 시작하기 위한 순서는 다음과 같습니다.
- 가고자 하는 회사 조사
- 가고 싶은 회사가 어떤 문제를 갖고 있는지 고민
- 그 문제를 정의하고 전략 수립
- 문제 해결에 필요한 도메인 분석
- 구현
- 문제 해결이 이루어졌는지 확인
추가적으로, 욕심이 더 생긴다면 목표를 더 높이고 다시 도전하면 좋습니다. 퍼포먼스 면에서 더 개선해서 말입니다.
그리고 다양한 시나리오를 만들어보고 증명해보는 일도 좋습니다.
나의 이야기 정리하기
개발자 이력서 내용 중에 어떤 내용까지 작성하는 게 좋을까요? 비전공 관련 활동을 작성해도 좋을까요?
이력서에 넣을 내용이 없어서 많은 고민을 갖고 있는 것이 공통점일 것입니다.
대학교 생활에서 개인 과제부터 팀 프로젝트까지 기술하는 것을 우선으로 생각해 보세요.
여기서 중점은,
- 수치적인 성과가 나타날 수 있는 경험
- 직무 연관(IT활동)을 기반으로 목적, 과정, 역할, 기여도 관점으로 정리
입니다. 처음 작성할 때는 서술식으로 마치 일기를 적듯이 적어보세요.
졸업 이후의 과정들은 '학습'보다는 '실무'에 목적을 맞춰서 설정해 보세요. 그렇지만, 가장 중요한 것은 무엇이든 '꾸준히 계속' 하는 것이 가장 중요합니다.
IT 활동이 아니더라도 프로그래밍 사고를 기반하는 경험을 작성해도 좋습니다.
예를 들어, '협업 능력', '리더십', '문제 해결 능력'의 경험이 있다면 작성해 보세요.
동아리장 역임, 정기 세션 발표, 아이디어 대회, 최고의 동료상 등 이런 것이 중요한 것이 아니라고 생각합니다.
더 중요한 것은, '리더십', '추진력', '협업 능력'과 발표를 통해 무엇을 학습했는지, 왜 그 주제를 선택했는지, 협업 과정에서 힘든 것은 무엇이었는지가 중요하며, 또한, '문제 해결 능력'의 경험이 중요합니다.
수상한 것은 앞서 말한 경험들의 결과의 이야기입니다. 이는 그 이상, 그 이하도 아닙니다. 행사보다 어떤 과정이 있었는지가 더 중요한 것 입니다.
이력서&포트폴리오 시작하기
학점, 실무, 대외 활동, 프로젝트 등 모범생 유형이 있고, 학교 밖의 유형이 있을 것 입니다. 또한, 실속 유형도 있을 것이구요. 어떤 유형이든 경험 및 강점을 파악하는 것을 완료해야 합니다.
이력서를 구성할 때는 쓰는 사람도, 보는 사람도 편하게 읽을 수 있도록 해야 합니다.
이력서를 구성한다면, '개인정보', '실무경험',' 프로젝트 및 경험', '기술스택',' 수상이력 및 기타 경험', '최종학력 및 학점'으로 구성될 수 있을 것 입니다.
이 때, 이력서의 첫 페이지는 서류의 당락을 결정하는 가장 큰 요소입니다. 그리고 면접에서 가장 많은 질문을 받게 되는 곳 입니다. 그렇기 때문에, 본인 관점에서 구체적인 프로젝트 설명이 필요하고, 기술 스택에 버전도 같이 적어보는 것이 좋습니다. 프로젝트 구현을 기능 단위로 작성하지 마세요.
이력서에 자기소개 문구나 본인의 페르소나가 담겨있도록 작성해 보세요. 그리고 기술스택을 보고 이 기술스택이 얼만큼 할 수 있는지 판단이 어렵기 때문에 점수나 등급, 별로 표현하는 것은 피하는 것이 좋습니다. 그리고 Contact 위치는 중요한 위치에 자리할 필요는 없습니다.
프로젝트에서 표현해야 할 것 중 하나가 바로 해당 작업을 왜 했는지 입니다. 해당 작업을 왜 했는지 파악할 수 있도록 해주세요.
본인의 이야기 정리하기
대학교 생활에서 개인 과제부터 팀 프로젝트까지 기술해 보세요.
포인트
- 수치적인 성과가 나타날 수 있는 경험
- 직무 연관(IT 활동)을 기반으로 목적, 과정, 역할, 기여도 관점으로 정리
처음 작성할 때는 서술식으로 일기를 적듯 작성해 보세요.
예시.
컴퓨터 공학과 자료구조 수업에서 트리 알고리즘을 이용해서 지하철 노선도를 직접 개발한 경험이 있습니다. 언어는 C언어를 사용하여 개발했고 이후에 팀원의 추천으로 Java로 변경해보며 절치지향 언어와 객체지향 언어의 특징을 학습할 수 있는 경험이었습니다.
또한, 공식적인 활동 이력을 확인할 수 있는 경험을 작성해 보세요. 해커톤, 봉사활동, 기타 활동 등이 있을 수 있습니다.
작성할 때는, 협업 능력, 리더십, 문제 해결 능력, 도전 정신, 학습 습관 등 여러가지 작성할 수 있으며, IT 활동이 아니더라도 프로그래밍 사고를 기반하는 경험으로 해석할 수 있습니다.
회장, 부회장과 같은 역할이나 수상 경력이 중요한 것이 아니라, 이 활동 과정에서 어떤 것을 배웠고, 어떤 경험을 했는지가 중요한 것입니다.
나의 서류가 읽혀지는 과정을 생각해야 합니다.
자기소개서 관리 방법
지원 직무를 선택한 이유는 무엇이며, 그 직무를 수행하기 위해 어떤 노력을 해왔는지에 대한 지원동기 질문을 자주 받습니다.
지원한 회사에서 개발자로서 이루고 싶은 목표는 무엇인지, 이를 위해 어떤 준비를 해왔는지에 대한 질문도 자주 받을 것입니다.
→ 이는 기업과 직무에 대한 이해도를 물어보는 질문 유형입니다. 본인이 기업과 직무에 대해 얼마나 이해하고 기여할 수 있는지를 중심으로 작성해 보세요. 추천합니다.
본인이 경험한 가장 혁신적인 프로젝트는 무엇이고, 그 과정에서 어떤 역할을 맡았는지에 대한 질문, 본인이 참여한 프로젝트 중 가장 도전적인 과제는 무엇이며, 그 문제를 해결 방법에 대한 질문은 경력 및 프로젝트 경험에 대한 질문입니다.
→ 이는, 실무 경험과 프로젝트 참여 경험을 물어보는 유형의 질문입니다. 앞서 이야기한 기업에 대한 이해도 및 직무에 대한 이해도를 바탕으로 "기여를 잘 할 수 있는 사람"이라는 목적에 대한 뒷받침이 될 수 있도록 작성해야 합니다.
본인이 팀워크를 통해 문제를 해결한 경험을 구체적으로 설명하라는 질문, 직무와 연관된 가장 어려웠던 경험을 설명하고 교훈을 설명해달라는 질문은 문제 해결 및 도전경험에 대한 질문입니다.
→ 개발 관점에서 기술적인 역량을 확인하기 위한 질문으로, 업무에 대한 스타일을 파악하기 위한 질문입니다. 프로그래밍적인 경험을 바탕으로 기술적으로 어떻게 문제를 풀었고, 왜 문제가 풀렸는지에 대한 이해와 퍼포먼스를 강조해야 합니다.
프로젝트에서 리더십을 발휘한 사례에 대한 질문은 팀워크 및 협업 경험에 대한 질문입니다.
→ 본인이 팔로워인지 팔로우인지 생각해 보세요. 개발에서 팔로워, 팔로우는 어떤 부분이 좋고 나쁜 것이 아닙니다. 본인의 위치에서 어떻게 팀에 기여할 것인가를 중점으로 작성해야 합니다.
본인의 강점과 약점을 기술하고, 지원한 회사에서 어떻게 활용하고 극복할 지 설명에 대한 질문, 이루고 싶은 커리어 목표와 이를 위해 어떻게 기여할 수 있느닞에 대한 개인 역량 및 성장 가능성 질문이 있습니다.
→ 회사에서의 성장 가능성을 개발적인 측면을 바탕으로 물어보는 종합 질문입니다.
기술적인 역량이 뒷받침되어야 하고, 직무에 대한 이해도가 정확해야 근거있는 계획을 제시할 수 있습니다. 그리고 프로젝트 경험이 있어야 근거있는 기여도를 이야기를 할 수 있을 것입니다.
아마 본인의 강점을 작성할 때, "소통을 잘 합니다"라는 내용을 작성하는 경우가 많을 것입니다. 소통을 잘 한다는 내용도 나쁘지는 않지만, 이것보다 개발 역량과 관련해서 강점을 작성해 보도록 해보세요.
위의 질문들은 다시 한 번 읽어보면, 지원동기부터 성장 가능성까지 모두 연결된 질문이라고 생각하면 됩니다. 본인이 어떤이유로 지원했고, 어떻게 기여할 수 있으며, 그 이유로 어떤 경험을 했고, 그래서 그것을 활용해 어떻게 회사에 도움을 줄 것인가를 이야기로 생각해 보세요.
자기소개서
자기소개서는 버전을 통한 관리를 추천합니다.
- 자소서 - 1차
- 자소서 - 2차
- 자소서 - 3차
- ...
언젠가 과거에 작성한 그 문구 하나가 필요할 때가 꼭 찾아옵니다.
자유 양식의 자기소개서인 경우에는 자유 양식을 통해 본인의 사례를 분석하고 스토리로 정리해 둡시다.
- 지원동기
- 경력 및 프로젝트 경험
- 문제 해결 및 도전경험
- 팀워크 및 협업 경험
- 개인 역량 및 성장 가능성
제출 서류 유형
- 이력서
- 자기소개서
- 포트폴리오
- Github
- 기술 블로그
------------ 본인 개발 습관과의 연관도 ---------→
이력서 | 자기소개서 | 포트폴리오 | 기술 블로그
←------------- 회사 직무와 연관도 -------------------
이력서 | 자기소개서 | 포트폴리오 | 기술 블로그
'Github'에서 잔디를 열심히 심고 있습니까?
잔디를 열심히 심는 것도 중요하지만, 더 중요한 것은 의미없는 잔디 심기보다 본인의 개발 역량, 개발에 대한 관심, 개발에 대한 이해도를 볼 수 있는 것이 더 중요합니다.
즉, 어떤 내용을 'Public'으로 둘 지 결정하고, 단순히 잔디 심기보다 어떤 잔디를 심을지 결정하는 것을 집중적으로 생각해 보세요.
포트폴리오
포트폴리오는 이력서와 자기소개서와는 다른 부분임을 명확하게 이해하고 있어야 합니다.
- 이력서: 회사의 직무와 연관도가 가장 높은 이력을 짧지만 강력하게 어필
- 포트폴리오: 이력서와 자기소개서에서 이야기 하지 못한 내용을 설명
개발 직군의 특성으로는 문제 해결 능력, 왜 했는지, 어떤 결과를 기대했고 만들어 냈는지, 어떤 영향력을 만들어 냈는지가 있습니다.
- 자기소개서: 주제에 따른 본인의 경험을 기반으로 하는 스토리텔링
포트폴리오를 작성하는 방법은 '아키텍처'를 그려보는 것입니다. 하지만, 단순한 아키텍처가 아닌 비즈니스 문제를 해결하기 위한 아키텍처를 만들어 보세요.
지원서를 제출하기 전 체크리스트
- 기술 스택이 공식 문서 기반인지 확인하기
- 소리내어 다섯 번 이상 읽기
- 나이기 때문에 적을 수 있는 문장인지 확인하고 아니라면 과감하게 제거하기
- 맞춤법을 검사하고, 문장이 유연한 지 계속 읽어보기
자기소개서 요약
- 지원동기: 기업 및 직무에 대한 이해도를 물어보는 질문 유형
- → 본인이 기업과 직무에 대해 얼마나 이해하고 기여할 수 있는지를 중심으로 작성
- 경력 및 프로젝트 경험: 실무 경험과 프로젝트 참여 경험을 물어보는 유형
- → 기업에 대한 이해도 및 직무에 대한 이해도를 바탕으로 기여를 잘 할 수 있는 사람이라는 목적에 대한 뒷받침이 될 수 있도록 작성
- 문제 해결 및 도전경험: 개발 관점에서 기술적인 역량을 확인하기 위한 질문
- → 업무에 대한 스타일을 파악하기 위한 질문으로, 프로그래밍적 경험을 바탕으로 기술적으로 어떻게 문제를 풀었고, 왜 문제가 풀렸는지에 대한 이해와 퍼포먼스를 강조
- 팀워크 및 협업 경험: 본인이 팔로워인가 팔로우인가에 대한 질문
- → 개발에서 팔로워, 팔로우는 어떤 부분이 좋고 나쁜 게 아니며, 본인의 위치에서 어떻게 팀에 기여할 것인가를 중점으로 작성
- 개발 역량 및 성장 가능성: 회사에서의 성장 가능성을 개발적인 측면을 바탕으로 물어보는 종합 질문
- → 기술적인 역량이 뒷받침되어야 하며, 직무에 대한 이해도가 정확해야 근거있는 계획을 제시할 수 있고, 프로젝트 경험이 있어야 근거있는 기여도를 이야기가 가능
포트폴리오 관리 방법
'아키텍처'를 그려봐야 합니다. 하지만, 단순한 아키텍처가 아닌 비즈니스 문제를 해결하기 위한 '아키텍처'를 만들어 보세요.
'여러가지 활동 > 프리온보딩 프론트엔드 챌린지' 카테고리의 다른 글
레거시 코드를 관리하고 유지 보수하는 방법 (1) | 2025.01.13 |
---|---|
이벤트 루프에 대해 (0) | 2024.09.30 |
프론트엔드의 React와 채용 과정 알아보기 (3) | 2024.08.15 |
객체지향 프로그래밍과 디자인 패턴 (0) | 2024.07.18 |
프론트엔드의 아키텍처와 디자인 패턴 (6) | 2024.07.15 |
- Total
- Today
- Yesterday
- 고민한 부분
- #포스텍애플디벨로퍼아카데미
- 개발자이력서꿀팁
- 자바스크립트
- 개발 이력서 지원 팁
- 포스텍애플아카데미
- Default Branch
- 조코딩과함께
- PostechAppleDeveloperAcademy
- 프론트엔드 챌린지
- javascript
- node
- 원티드 프리온보딩
- 최종추가합격
- 원티드 프리온보딩 챌린지
- 깃허브 Merge
- 스프링
- LottieFiles
- if(kakao)dev2022
- Singleton
- 설명회느낌점
- 포스텍애플디벨로퍼아카데미
- 싱글톤
- DB Error MongooseServerSelectionError
- Frontend
- React
- Express
- 그룹인터뷰후기
- 신입개발자가 준비해야 할 것들
- 코딩테스트 대비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |