백엔드 포트폴리오를 위한 현직자 꿀팁

Q&A 큐레이션

1. 백엔드 포트폴리오.

백엔드 개발하시는 분들은 포트폴리오 만드실때 어떤식으로 하시나요? 웹사이트 만들어서 포트폴리오를 제출하나요?


답변

호오, 그렇네요. 백엔드 개발자는 딱히 포트폴리오를 만들어서 보이기가 어렵군요. 경력자 입장에서야, 어떤 프로젝트에서 백엔드 어느 부분을 담당했다고 얘기하면 되는데, 딱히 공개할 경력이 없다면, 포트폴리오로 보일만한 자료가 마땅치 않겠네요. 아니면, 간단하더라도 백엔드 시스템에서 활용할만한 라이브러리를 만들어 공개한다거나, 본인이 즐겨쓰던 오픈소스 라이브러리에 PR을 보낸다거나 하는 방식으로 갈음할 수 있지 않을까 합니다. 본인 깃헙에 소스를 공개해두고 링크를 거는 식이 되겠죠. 아니면, 개발 블로그 글을 쓰는 것도 좋은 것 같습니다. 꼭, 다른 사람들에게 알려줘야 하는 느낌이라기보다 본인이 학습한 내용을 정리하고 공유하는 정도로도, 면접 전에 충분한 인상을 줄 수 있을 것 같습니다. 적어도 제 경우에는, 입사 지원자가 개발 블로그 링크나 깃헙 링크를 걸어두면, 꼭 찾아가서 잘 살펴보았었습니다. 어떤 분야에 관심을 갖고, 어떻게 공부해 온 사람인지 궁금하더라고요. 정리하자면, 딱히 백엔드 엔지니어에게 포트폴리오 웹사이트를 기대하거나 요구하지는 않는다는 생각입니다. 있으면 좋은 정도겠지만, 필수라고 보긴 어렵겠다 정도의 의견이에요. 디자이너나 프론트엔드 개발자라면 기대하는 경우가 더 많기는 하겠지만요. 물론, 어떤 백엔드 기술을 시연할 수 있으면서, 본인이 프론트까지 가볍게 익혀서 보이면 금상첨화! 그런데 만약, 프론트 꾸미느라 백엔드 기술이 허약하면, 안 하느니만 못하겠죠.

모두 보기

2. 백엔드 신입 포트폴리오 수준

안녕하세요? 컴퓨터 공학을 전공하고 혼자 취업준비중인 25세 취준생입니다 백엔드를 희망중이고, 주로 공부하고 있는 스택은 스프링 부트, Java, AWS, JPA, Docker, mysql입니다. 현재 ‘스프링 부트와 AWS로 혼자 구현하는 웹서비스(프리랙, 이동욱)’ 책을 실습중인데, 이 책을 따라하면 스프링 부트로 구현한 기본 CRUD 게시판(+OAuth2.0 소셜 로그인, AWS 배포)이 나옵니다. 실습결과물에 부트스트랩과 댓글 기능, 제가 구상한 웹사이트 컨셉에 맞는 페이지를 몇 개 더 넣어서 포트폴리오로 활용하려고 합니다. 그런데 기초적인 기능만 있다보니 백엔드 신입 포트폴리오로 보여주기 충분할지 고민이되어 질문글을 올리게 되었습니다. 아무래도 평범하고 튀는데 없고 초보적인 포폴이겠죠? 🥲 더이상 공백기 늘리고싶지 않아서 초보포폴이라도 일단 가지고 면접으로 헤딩할것같긴합니다만.. ㅎㅎ😅


답변

포트폴리오에 다양하고 화려한 프로젝트를 정리하시면 서류 심사시에는 분명 플러스 점수를 받으실 수 있겠지만, 면접까지 가게 된다면 중요한건 진행하신 프로젝트에서 사용하신 기술의 이해와 응용력이라고 생각됩니다. 면접관이신 분들은 대부분 현업에서 오랜 경험을 쌓으신 베테랑 분들이기 때문에 간단한 질문 몇가지로 진행하신 프로젝트에 대한 이해도가 높은지, 구입하신 책이나 강의 내용을 단순하게 따라한건지를 알 수 있습니다. 예를 들어 DB 에서 각 테이블간의 관계를 어떻게 정의했고 schema 를 왜 이렇게 설계했는지, CRUD 기능 API 를 Restful 하게 정의했을 경우 Restful API 가 무엇이고 이렇게 했을때의 장점이 무엇인지, 사용하신 디자인 패턴이나 아키텍쳐의 특징이 무엇이고 왜 사용했는지, 게시판에 좋아요 혹은 이미지 등을 업로드 하는 기능을 추가한다면 어떻게 개선해야하는지 등.. 정리하신 기술이나 프로젝트가 많으면 많을수록 이런 질문들은 끝도 없이 나올 수 있습니다. 포트폴리오가 아무리 화려하고 다양하더라도 저런 질문에 대해 제대로된 답변을 못하신다면 오히려 마이너스 점수를 받으실 수 밖에 없겠죠. 서류심사를 위해 가능하시다면 포트폴리오에 다양한 프로젝트를 쓰시는게 좋지만 하나를 쓰시더라도 진행하셨던 프로젝트에 대한 이해도를 높이고 추가로 응용해볼 수 있는 기술등은 없으실지를 찾아보시는게 좀 더 도움이 되지 않을까 생각됩니다. 아무쪼록 좋은 결과 얻으시고 힘내시길 바랍니다.

외 1개 답변

모두 보기

3. api만 설계하고 개발한 프로젝트는 어떻게 포트폴리오에 담을까요

코드만 붙여넣고 설명을 넣는 것도 영 아니어서 다 지워버렸는데 조언 좀 부탁드립니다. 프론트를 그냥 만들어야할까요?


답변

프론트가 없어도 표현할 요소가 많이 있을것같습니다. -데이터베이스를 핸들링하는 어플리케이션구조및 db erd 다이어그램 -API를 이용하는 순서를 표현하는 시쿼스 UML -프레임워크를 활용한 요소 또는 특정 모듈을 이용했다면 해당 모듈에대한 소개및 활용방법 -유닛테스트가 있다고하면 적용및 활용사례 -api 로깅처리 방식 마지막으로 API를 도메인에 연결하고 작동시키는 배포 CI/CD Flow등입니다.

외 1개 답변

모두 보기

4. 백엔드 개발자 취업 시 포트폴리오 구성할 때 프론트엔드 질문입니다.

백엔드 개발자로 취업을 희망하고 있는 사람입니다! 국비 교육을 들을 때 팀프로젝트 경험이 하나 있는데 아직 실력이 부족하다 생각하여 포트폴리오에 넣을 프로젝트를 한 개 정도만 더 해볼 생각입니다. 문제는 포트폴리오를 만들 때 프론트엔드의 비중을 얼마나 해야될지 감이 잘 안 옵니다! 국비교육 프로젝트를 할 때는 팀원 모두가 프론트엔드 + 백엔드를 같이 했습니다. 물론 백엔드 과정이었기 때문에 백엔드에 좀 더 초점을 뒀고 프론트엔드는 HTML, CSS, JS 로 아주 기초적인 것만 했습니다. 새롭게 포트폴리오를 하려고 하니 이 부분이 참 고민이 되더라구요. 화면을 안 만들고 백엔드 쪽에 집중해서 기능 구현(문제 해결 과정 포함) 및 테스트 코드에 집중을 하는 것이 맞을지, 아니면 화면을 react나 vue를 사용해서 까지는 아니어도 만들긴 해야되는 것인지 결정을 내리는 것이 어렵네요. 다들 이 부분에 대해서 어떻게 생각하시는지 의견 나눔해주시면 감사하겠습니다!


답변

안녕하세요! 백엔드 개발자로 취업을 목표하시니 우선 백엔드를 잘 만드는게 먼저인 것 같습니다. 프론트는 있으면 좋긴하지만 선택사항인 것 같아요. 유사한 질문이 올라온적이 있는데, 참고하시면 좋을 것 같아서 링크 남깁니다. https://careerly.co.kr/qnas/841?fa=notification 사견을 드리자면, 프론트엔드 요소를 만들 필요는 없지만 서비스의 요구사항을 생각해보면서 백엔드를 설계하는 것은 필요한 것 같아요. 가장 쉬운 방법은 기존에 있는 것을 재구현 해보는 것입니다. (요즘 월드컵 기간이니까) 네이버 스포츠 페이지 (https://m.sports.naver.com/qatar2022/news/index?date=20221121&sort=latest&isAmatch=false) 웹을 기준으로 예를 들어볼게요. 해당 페이지를 조금 살펴보면: - "뉴스"들이 목록 형태로 보임 - 한번에 대략 20개의 "뉴스"가 보임 - 하단에 "뉴스 더보기"를 누르면 추가로 "뉴스"가 보임 - 하단에 "날짜"를 기준으로 "뉴스" 목록이 달라짐 - 상단에는 "최신순", "인기순", "대한민국 대표팀"을 누를 수 있고, 누르게 되면 "뉴스" 목록이 달라짐 - (오른쪽 "월드컵 소식 랭킹" 부분은 생략) 뉴스 데이터가 다 있다고 가정하고 이 페이지를 위한 백엔드 API를 설계한다고 했을때, 어떤 것들이 필요할까요? 하나씩 천천히 보면: 1. "뉴스" 20개가 한번에 보임 - 20개라는 기준이 있죠. 그러면 DB 요청을 할 때 최대 20개만 가져오도록 설계가 필요합니다. 2. "뉴스 더보기"를 누르면 추가 뉴스가 보임 - 이건 pagination이 필요한거겠죠? page=1일때 20개가 보이고 page=2로 바꿔서 요청을 보내면 다음 20개의 데이터를 불러오는 형태가 되어야합니다. 3. "날짜"를 기준으로 뉴스 데이터를 바꿀 수 있음 - 이건 parameter가 들어간다는 뜻이겠죠. date이라는 값이 백엔드에 전달이 되어야 되고 이걸 기준으로 DB에서 데이터를 조회해야겠죠. 4. "최신순", "인기순", "대한민국 대표팀" 기준으로 데이터가 바뀜 - 이것도 마찬가지로 parameter가 필요하고, 해당 값을 기준으로 정렬이 필요하겠죠? 최신순이면 뉴스 기사가 올라온 시간을 기준으로 가장 빠른 것을 먼저 보여준다 정도가 되겠네요. 그럼 최종적으로 클라이언트 (프론트엔드)에서 백엔드로 요청을 보낼 때는 - 날짜 - 팀? (대한민국 대표팀) - 정렬 기준 (최신, 인기) - 요청 페이지 - 페이지 크기 (20이 기본 값) 이런 값들이 들어갈 것 같네요. 예시 endpoint: https://api-gateway.com/v1/news/qatar-worldcup?date=20221122&sortBy=latest&team=korea&page=1&pageSize=20 이런식으로 서버 쪽 endpoint를 예상해볼 수 있겠죠? 여기서 끝이 아니겠죠? - 저 parameter로 넘겨받는 값들에 대한 검증 로직도 필요하고, DB도 설계해야하고, 조건에 맞게 데이터베이스 쿼리도 구현해야겠죠. - 네이버처럼 대규모 트래픽이 예상된다면 캐싱도 고려해야하구요. (물론 개인 프로젝트에서는 그 정도까지 필요 없을 거지만요) 이 예시처럼 단순히 데이터를 조회만 하는 경우에도 서비스의 요구사항에 따라 고려사항은 끝도 없이 늘어나는데요. 프론트엔드에서 사용자가 데이터를 직접 생성/수정/삭제하는 경우에는 더 고려할게 많겠죠? 이처럼 요구사항을 빠르게 이해하셔서 설계하고 구현하는 능력이 중요합니다. 이 능력을 학습하는 방법 중에 하나가 이미 있는 서비스의 요구사항을 분석해보고, 설계하고, 구현하는 것 입니다. --- 참고: 네이버 api는 이렇게 되어있네요. - 일반: https://api-gw.sports.naver.com/news/articles/qatar2022?sort=latest&isPhoto=N&page=1&pageSize=20&date=20221121 - 대한민국 대표팀: https://api-gw.sports.naver.com/news/articles/qatar2022_amatch?sort=latest&isPhoto=N&page=2&pageSize=20&date=20221121)

모두 보기

5. 신입개발 포트폴리오 가장 중요하게 보시는 부분이 무엇인가요?

안녕하세요. 취업준비중인 신입 백엔드개발자입니다. 깃허브의 리드미, 노션에 공부내용 등을 기록해왔는데 문득 포트폴리오로 피피티로 간단한 프로젝트 캡쳐본과 주요 소스를 각 프로젝트별 2~3장씩 정리를 해서 pdf로 첨부하면 보시기편하지않을까? 생각이 듭니다만, 주변에서는 결과가 어떻게 나오는지, 어떤 구조인지 궁금해하지않을거라며 어떤 스택을 썼는지, 스킬이 어떻게되는지 에 대해 간단히 작성하고 남는 시간에 피피티 만들시간에 토이 프로젝트를 하나를 만들라네요! 하지만 회사바이회사이지않을까하는생각에 다른분들의 의견도 받아보고싶어서요! 신입개발자의 포트폴리오는 정말 깃허브와 리드미, 노션의 이력서 내용이면 충분할까요?


답변

저 같은 경우 이력서 받아보면 잘 정리된 이력서는 깃헙 주소와 개인 블로그? 등을 제공했습니다. 그리고 각각 다른 관점으로 봅니다. 깃허브는 대충 어떤 프로젝트 했나, 가장 최근 코드 스타일은 어떤가, 사용한 로직을 알고 사용했을까 등을 보고. 개인 블로그는 옵셔널한 부분이지만 일단 플러스 요인이 되긴 합니다. 다만 그 정리된 요소들이 누가봐도 취업준비를 위해 만든 것들이다..? 라고 느끼면 마이너스는 아니지만 그냥저냥 보게됩니다. 저 같은 경우는 노션 한 페이지에 몽땅 때려박고 했던 프로젝트는 따로 페이지를 만들어 정리 했습니다. 갖고 있능 개발 스킬들도 한 페이지에 정리했구요. 정리하자면 깃허브에 프로젝트 있으니 너가 알아서 봐라 하는 것보단 코드 참고용으로 제공하고 진행한 프로젝트는 본인이 느낀, 무얼했는지 등을 잘 정리해서 보여주는게 좋을 것 같습니다. 제 프로필에 노션 페이지 링크가 걸려있긴한데... 뭔가 허접하고 부끄럽지만 참고하셔도 괜찮을 것 같습니다.

모두 보기