본문 바로가기
일상/리뷰&후기

[개발자가 되고 싶습니다] 리뷰 및 정리

by GangDev 2024. 3. 22.

정보처리기사 자격증 관련

SI업체에서 일하게 될 경우 정보처리기사 자격증이 있으면 좋다. 일반적으로 외주 회사는 고객사로부터 작업을 의뢰받을 때 프로젝트당 인건비를 고려해 계약 금액을 산정한다. 국가에서 정한 기준은 바로 '정보처리기사 자격증 취득년도 대비 몇 년 차 개발자인가'다.

개발자의 자세

개발자로서 가치를 유지하기 위해서는 늘 공부해야 한다. 새로운 기술이 나오면 해당 기술에 대해 공부하고 프로젝트에 적용해 봐야 한다.

비전공자가 개발자로 직업을 바꾸려면?

많이 노력해야 한다. 하루에 8-10시간씩 최소 6개월 이상은 공부해야 감을 잡을 수 있다.

프로그래밍 언어란?

인간이 컴퓨터와 의사소통하기 위해 만든 약속 체계. 인간이 프로그래밍 언어로 코딩하면 이를 0과 1로 된 기계어로 바꾸어 컴퓨터가 명령을 실행한다.

프레임워크란?

원하는 기능을 개발할 수 있도록 일정한 뼈대(구조)를 제공한다. 개발자는 프레임워크에서 제공하는 뼈대에서 정해진 규칙에 따라 프로그램을 제공한다.

라이브러리란?

프레임워크를 사용해 보다 더 완성된 코드의 묶음을 제공한다. 프레임워크가 기본 툴이라면 라이브러리는 기본 툴을 활용해 완성품에 가까운 코드를 제공한다.

데브옵스란?

쉽게 말하면 서비스가 잘 운영되기 위한 인프라 관리를 돕는 역할을 한다.

HTML CSS JAVSCRIPT 란?

HTML: 웹 페이지의 구조 설계

CSS: 웹 페이지의 디자인 구현

자바스크립트: 웹 페이지에 동적 기능(사용자와 상호 작용) 추가

풀스택 개발자

프론트엔드와 백엔드를 모두 개발할 수 있는 개발자로 일컫는다. 혼자 다 할 수 있는 장점이 있지만, 애매하게 공부할 경우 어느 한 가지 분야도 제대로 알지 못할 수 있다.

최소 개발 인원으로 초기 서비스를 개발하는 스타트업은 풀스택 개발자를 선호한다. 하지만 개발자의 커리어 관리, 특정 분야로의 꾸준한 실력 상승, 단계별 연봉 인상이나 IT 대기업으로의 이직 등을 위해서는 풀스택 개발자보다 한 가지 개발 분야를 깊게 아는 것을 추천한다.

백엔드 개발자는,

수학을 좋아하는 사람, 논리적인 문제를 해결하거나 연산과정에서 뿌듯함을 느끼는 사람이 적합할 수 있다.

독학-국비학원-사설부트캠프

독학: 혼자 공부할 경우 시행착오를 겪게 될 확률이 크다. 평균적으로 공부 시간이 늘어날 수 있다. 시행착오 없이 공부하기 힘들다.

국비학원: 학원에 따라 강의 질이 차이 날 수 있어서 사전 조사해야 한다. 학원비가 나라에서 지원해 줘서 무료다.

사설 학원(부트캠프): 학원비가 비싸다. 단기간에 많은 내용을 가르쳐야 하므로 진도를 빨리 나갈 수밖에 없다. 예습하지 않으면 따라가기 힘들다.

>> 돈 여유 있다면 사설 학원(부트캠프)로, 여유 없다면 국비학원을 추천.

프레임워크는,

어떤 원리로 만들어졌는지 이해하면 코드를 하나하나 외울 필요가 없다. 필요할 때 검색해서 찾아 쓰면 된다.

중요한 것은 포기하지 않는 것

중간에 그만두지 않고 끝까지 완주하기. 코딩에 재미 느끼기.

프로그래밍 언어의 문법은 외우는 방식으로 접근

기본 법칙이므로 최대한 많이 외워서 익숙해져야 한다. 초반에 절대적으로 많은 분량을 학습해야 한다.

프레임워크는 사용 방식에 외울 필요 없이 사용 방식에 익숙해지는 방향으로 공부

사용하다 보면 익숙해진다.

학원 특징

같은 목적으로 공부하는 동료가 생긴다. 향후 업계에서 계속 정보를 공유할 수 있다.

미리 어느 정도 예습하고 간다. 가능하면 프레임워크 기초 수준까지.

학원에서 얼마나 많이 얻어가느냐는 얼마나 많은 내용을 사전에 알고 있는지에 따라 달라진다.

회사가 신입에게 바라는 것

네트워크 통신을 활용한 프로젝트 경험 여부?

구직 사이트 둘러보자

지금 당장 지원하지 않더라도 내가 가고 싶은 회사에서 어떤 기술을 요구하는지 구체적으로 확인한다.

구직사이트:

원티트, 랠릿, 프로그래머스, 로켓펀치

코딩 테스트 하는 이유

코딩 테스트가 1차 필터 역할을 하기 때문. 지원자의 컴퓨터 공학 전공 지식을 확인하려는 의도도 있다.

빨리 취업하는 것이 목적이라면 코팅 테스트를 준비하지 않는 것을 추천. 코딩에 흥미를 잃을 수도 있고, 코딩 테스트를 준비하게 되면 취업이 최소 3-6개월 늦어질 수 있기 때문.

1-3년 차 신입 시절에 알고리즘 공부하고, 나중에 경력직으로서 잊기를 준비할 때 코팅 테스트 치르는 네카라쿠배 같은 회사에 도전하는 것 또한 좋은 전략이 될 수 있다.

6개월-1년 이내에 취업하는 것이 목표가 아니라면, 아직 학생이거나 취업까지 시간 여유가 있다면 당연히 코딩 테스트를 준비하는 편이 좋다.

알고리즘 문제 푸는 법

기본적인 자료구조와 알고리즘 이론을 먼저 학습한 다음에 풀도록 한다.

보통 유형이 정해져 있다. 5-여 가지 패턴만 잘 외우고 있어도 웬만한 코딩 테스트는 통과한다.

알고리즘 사이트: 프로그래머스, 백준

유튜브에 '코딩 테스트 준비하는 방법' 검색. 효율적으로 준비한 사람들의 노하우를 흡수하자.

지원 분야 이외의 언어로 시험을 치르는 것은 추천하지 않는다.

프로젝트 결과물을 만드는 것과 해당 분야를 체계적으로 학습하는 것이 코딩 테스트보다 훨씬 중요하다.

포트폴리오

한글이나 워드처럼 문서 작성 프로그램으로 작성했다면 깨질 우려가 있기 때문에 PDF로 제출한다.

포트폴리오에서 가장 중요한 부분은 문제 해결을 서술하는 것. 어떤 프로젝트를 했는지가 중요한 것이 아니고 구현 과정에서 어떤 기술적인 문제점이 있었는데, 그것을 어떤 방식으로 해결했는지를 구체적으로 서술하면서 자신의 관점을 잘 담아내는 것이 중요하다 >> 문제를 마주했을 때 해당 문제를 올바른 관점에서 분석하고 논리적인 사고를 통해 해결책을 찾아낼 수 있는 사람이라는 것을 어필해야 한다.

포트폴리오를 더 잘 쓰려면 프로젝트를 시작할 때부터 나중에 포트폴리오에 넣을 내용까지 고려해야 한다. 즉, 프로젝트를 진행하면서 그 과정을 구체적으로 기록해 둬야 한다.

깃허브 잔디 관리: 매일 어떤 내용을 공부했다는 것을 깃허브나 블로그에 기록해 두자. 꾸준히 공부했다는 성실성의 증거가 된다.

회사가 원하는 사원상

지금은 실력이 뛰어나지 않더라도 앞으로 성장이 기대되는 사람. 배움에 열정이 있고, 배운 것을 빠르게 소화하고, 개발에 대한 관심 자체가 높아 개발을 재미있어하고, 평소에도 많은 시간과 노력을 투입해 공부를 게을리하지 않는 사람.

취준 하면서 준비할 것

1. 본인만의 개발 정리 노트/마인드맵 만들기(공부 목적용)

2. 개발 블로그 작성

3. 개발 관련 서적 읽고 내용 정리하기

4. 기능 학습을 위한 개인 프로젝트 만들기

5. 몇 가지 개발 관련 주제를 선정해 정리해 보기.

6. 개인 프로젝트 만들기

7. 라이브러리 만들어 깃허브에 올리기

8. 개발 관련 콘퍼런스 등에 참석하고 느낀 점, 배운 점 정리하기

직접 기획한 프로젝트

본인의 아이디어로 직접 프로젝트를 만드는 것은 가점을 받는 데 유리. 하지만 아이디어, 프로젝트 기획, 디자인, 개발 전 과정을 수행해야 하는데 단기간에 끝내지 쉽지 않다.

기능과 페이지를 최소한을 구현한다. 웹이든 앱이든 최대 5페이지 이하로 구현한다.

예시) 웹 서비스: 게시판, to-do 리스트, 날씨 정보, 개봉 영화 소개 사이트.

앱: to-do 앱, 날씨 앱, 타이머 앱.

구글에 참고자료 검색하자 >>

검색 키워드: 웹 기획서 탬플릿, 웹 페이지 기획서 스토리보드, 앱 스토리보드, 화면 설계서 작성 방법, 모바일 앱 기획서 템플릿, 앱 스토리보드 예시

프로젝트를 시작할 때 서비스의 범위와 기능을 명확하게 확정하고 시작한다. 그래야 중간에 바뀌더라도 수정해야 할 기능을 놓치지 않는다.

디자인 참고 사이트: 비핸스, 드리블, 핀터레스트

기획과 디자인엔 최소한의 자원만 투입한다. 중요한 것은 개발 및 구현능력을 보여주는 것이다.

오픈 API 서비스를 활용하자: 날씨 정보, 교통 정보, 서울시 인구 정보, 도로 정보, 국내에 개봉한 영화 정보 등 공공데이터 관련 API가 대표적.

개발자 커뮤니티, 개발 동아리 활용 >> 프로젝트 협업할 동료 구하기.

해커톤 참석하기: 해커톤에 개발자로 참여하면 기획자와 디자이너를 행사에서 매칭해 준다.

행사 일정 검색 사이트: 이벤터스, 온오프믹스

클론코딩

본인의 개발 실력 자체에 집중하고 싶다면 클론 코딩 프로젝트를 추천.

내부에 쓰이는 기술이나 난이도는 똑같이 구현해야 하기 때문에 따라 만들어도 도움이 된다. 막히는 부분에서 해결해 나가는 과정에서 많은 것을 배우고 성장할 수 있다.

자주 사용하는 서비스 따라 만들기: 자주 사용해 봤기 때문에 사용법도 익숙하고 서비스를 분석하고 구현하는 데 많은 노력을 들이지 않아도 된다.

누구나 다 아는 서비스 따라 만들기: 유튜브, 인스타그램, 당근마켓, 에어비앤비, 트위터 등. 워낙 유명해서 누가 봐도 잘 만들었는지 판단할 수 있고, 완성한 프로젝트를 보면 수준도 꽤 있어 보이기 때문에 클론 코딩하기에 적합하다.

어렵다면 클론 코딩 강의를 활용하자.

철저하게 학습 > 모든 강의 내용 따라하기 > 처음부터 끝까지 강의를 보지 않고 모든 내용을 직접 코드를 작성해서 다시 구현하기.

면접 관련

면접 문제 미리 검색해 보기: 기술 면접 준비는 포트폴리오 작성하고 서류를 준비할 때부터 하는 것이 좋다.

예) 백엔드 기술면접 질문, 자바 백엔드 기술 면접 질문, CS 기술 면접 질문

각 분야별로 면접 질문을 나눈 후 어떻게 답할지 답변도 같이 정리해 나만의 면접 노트를 만든다.

자주 나오는 질문 순으로 우선순위를 매겨 정리하는 것이 좋다.

달달 외우는 건 티가 나기 때문에 나만의 언어로 말하는 연습을 해야 한다.

면접 스터디를 진행하자. 혼자 준비하는 것보다 여러 명이 같이 준비하는 것이 낫다. 서로 의견 교환하고 조언을 주고받으면서 교차 검증할 수 있기 때문.

정말 가고 싶은 회사는 나중에 지원하기: 면접을 보는 횟수가 늘면 늘수록 면접에 임하는 태도가 좋아지고 평정심이 생겨 침착함을 유지하기가 쉬워진다.

답변하지 못했을 때 평정심을 최대한 유지하고 다음 질문에 답변하는 것만 집중한다.

태도는 겸손하고 열려 있되 때론 자신의 관점을 말할 줄 아는 능동적이고 적극적인 사람으로 취한다.

공부 방법

개발 공부의 속성을 이해한다.

직접 쳐 보고, 그려 보고, 찾아본다.

흔들리지 않는 마음을 갖는다.

개발은 어떤 분야든 로직, 즉 논리가 다 같다. 진입 장벽을 깨기 어렵지만 처음만 잘 지나가면 모든 개발은 대동소이하다.

결국 개발이라는 것 자체가 코드를 통해 결과물을 만들어 내는 것이므로 막연히 두려워하기보다 때로는 과감하게, 설사 코드가 잘못됐더라도 무작정 만들어 보는 경험이 중요하다.

먼저 무언가를 만드는 과정에서 막히는 부분 또는 잘 모르겠는 부분을 몸으로 부딪혀 보고 이론을 공부해도 늦지 않다.

모든 것을 알아야 한다는 집착 내려놓기: 언제나 구글 검색해서 코드 복사 가능.

프로그래밍 언어 문법과 최소한의 프레임워크 사용법을 배웠으면 지금 수준보다 살짝 더 높은 수준으로 프로젝트 도전해 보자. 막히는 것은 검색해서 해결 방법을 찾아낸다.

먼저 어떻게 구현할지 동작 방식을 종이에 그려 보고 구조가 정리되면 그때부터 코드로 옮긴다.

코딩할 때 다른 사람의 코드를 분석하거나 무언가를 만들어 내야 한다면 최대한 단계별로 쪼개서 생각한다.

개발 공부는 단기간에 끝내 버리겠다는 마음가짐

진입장벽 극복을 하면 탄력을 받는다. 탄력이 붙기 위해 최소 6개월 동안 하루 8시간 이상 공부해야 한다.

목표를 높게 잡지 말고 재미에 집중하자.

취업 준비생 때부터 모든 것을 완벽하게 아는 상태로 취업하겠다고 생각하지 말자.

개발 관련 추천 도서

클린 코드

리팩터링

객체지향의 사실과 오해

오브젝트

함께 자라기

개발 관련 깃허브

고퀄리티 개발 콘텐츠 모음(한정수)

프론트엔드 개발자 TIL(진유림)

백엔드 개발자 TIL(김남윤)

지속해서 성장할 수 있는 회사 찾기

당장의 연봉보다는 개발자로서 지속해서 성장할 수 있는 환경이 가장 중요.

판단 기준:

팀에 나 외에 선임이 있는가?

그 회사가 지속해서 새로운 기술에 관심이 있는가?

기능을 지속해서 개발하고 새로운 사업을 시도하는 회사인가?(유지보수 업부모다 신규개발이 주인 회사)

IT 기술을 근간으로 하는 곳인가?(영업이나 서비스보다 기술이 주인 회사)

코드 리뷰 시간 등 회사 나름의 개발 문화를 가지고 있는가?

자기 계발 관련

새로운 기술을 학습한다.

기존 코드를 어떻게 리팩터링 할 수 있을지 고민한다.

배포 과정을 단순화한다.

재사용성이 높고 유지보수하기 쉬운 새로운 아키텍처를 도입한다.

개발 분야마다 조금씩 차이는 있지만 자신의 프로젝트를 지속적으로 발전시키는 데 관심을 두며 나 자신을 성장시킨다.

코딩을 배우기 시작할 때부터 '왜 이렇게 동작하는지' 동작 구조의 원리를 생각하고 '왜?'를 붙여 보는 습관을 들인다.

신입 개발자로 취업하고 1년이 안 됐어도 항상 이직을 준비하면서 긴장감을 유지하자.

기본기에 충실하자

개발자로서 문제 해결자가 되어야 한다. 문제를 정확하게 분석하고 해결 관점을 제시할 줄 알아야 한다.

기본기가 탄탄한 개발자가 결국 복잡하고 어려운 내용도 단순화해서 생각하고 큰 흐름을 이해해 정확한 해결책을 제시할 수 있다.

가장 중요한 것은 포기하지 않고 묵묵하게 자신을 믿고 될 때까지 하는 것. 언젠가 개발자가 될 수 있다는 것을 확신하고 자기 자신을 믿고 간다.

-------------

소감

책이 두껍지 않으면서도 내용은 입문자에게 매우 알차다.

저자는 업계 선배로서 초심자의 마음을 이해하고 앞으로 향해야 할 길을 하나씩 인도해준다.

친절한 안내서로서 잊어먹거나 힘들 때마다 한번씩 되새김질해야겠다.