주니어개발자로 성장하는 우아한 방법들

1 부
연사 : 윤지수 님 (코드스쿼드)
발표자료

웹의 발전에 우리가 대응할 수 있는 10가지 방법

웹의 발전 -> 웹에 대한 요구사항도 발전 중 (인터렉션 등)

1. 현장 이해하고 대응하기

현장의 특징

  • 함께 일하기
  • 분석, 개발, 테스트, 배포, 피드백, 개선이 반복됨
  • 제품과 서비스의 지속적인 운영이 이루어짐

여기서 발생하는 문제들

  • 커뮤니케이션 문제
  • 일의 순서 정리
  • 다양한 제약사항
  • 품질과 일정
  • 형상관리
  • 테스팅의 어려움

연습은 실전처럼 !

일단 기본을 쌓았으면

  • 얼른 미니 프로젝트 -> 좀더 큰 프로젝트 -> 같이 할 수 있는 프로젝트
  • 프로젝트를 하면서 모르는 부분을 찾아보며 공부하자
  • 인턴, 알바 경험
  • 경력같은 주니어란 실전적 경험이 많은 주니어 !

문제 해결 능력 향상

  • 문제 해결하고 회고 꼭 하기 (다음번에 발생했을 때 잘 대처하기 위해)
  • 디버깅 도구 잘 활용하기
  • 다른 사람 코드를 읽고 활용하기


2. JavaScript익히는 것이 가장 중요

  • 프로젝트를 하면서 언어 책을 함께 공부하자
  • 면접에서 이론을 묻는 이유는?
    • 기초지식을 충분히 알고 대응하는 개발자인지 알아내기 위해


3. UX 중점으로 개발하기

신입을 뽑을 때 ‘우리 제품의 interaction 이 상당히 복잡한데 이걸 유지보수 할 수 있는 사람일까?’ 라는 고민을 한다.

  • FE 개발자는 완벽한 코드보다, 사용성 (ux) 향상작업 (성능, 매끄러움 등) 에 신경을 많이 써야한다.
  • 사용자가 쓰기에 불편함이 없는 인터랙션 개발.
  • 애니메이션
  • 좀더 빠르고 좀더 직관적인 UX 고민, 개선
  • CSS3, DOM, Event, Animation 제어, 비동기 + (debounce, throttling) 에 대한 이해


4. 함께 자라기

  • 현업은 함께 고민하고 함께 만들며 성장한다.
  • 함께할 수 있는 방법을 찾는게 정말 중요하다…
  • 면접에서도 협업에서 힘들 었던 점을 많이 물어본다.
    (현업에서 마주할 문제들을 해결할 수 있는지 확인)
  • Github - wiki / issue / project 사용해서 일감 만들어 관리하기
  • 커뮤니티를 활용해서 사람들 만나기 !

프로젝트에 대한 팁

  • 눈에 보이는 플젝이 화려하다 이쁘다 보다는 어떤 경험을 했는지를 블로그에 정리하는게 더 좋다.
  • 기존에 존재하는 사이트의 문제점을 개선해보는 프로젝트도 좋다.

(예전 플젝들 개선하기 블로그로 정리하면 좋을 듯)


5. 기초에서 좀 더 중요한 것들은?

기초는 현업자가 되어도 꾸준히 학습해야할 부분임

  • 자료구조 알고리즘

    • 문제를 다양한 방법으로 풀수 있고, 효율성 고려할 수 있다.
    • 시간 재기
    • 쉬운 문제 많이 풀어보기
    • 같은 문제 다시 풀어보기
    • 다른 사람 코드 보기
    • 지속가능한 학습 방법 찾기
  • 네트워크 (HTTP, TCP IP 중심) : FE 에게 중요

    • 크롬 개발자 도구의 network 부분은 모두 다 알아두는게 좋다.
  • 백엔드 접하기

    • SSR 을 위한 서버 운영 등에 필요할 수 있다.


6. FE 엔지니어로 점프

  • Component 기반 개발이 표준이 된 세상

    • HTML, CSS, JS 를 같이 개발
  • 결국 React, Vue 보단 Vanilla 를 먼저 해야한다. (바닐라 플젝 중요하겠다.)

  • HTML, CSS 를 어려워하는 사람은

    • 본인이 원하는 사이트 만들어보며 꾸미는 재미를 찾아가면 좋다.

    • 꾸미는 재미를 못 찾는 사람은 FE 진로를 다시 고민해봐야함 !


7. 개발자 로드맵에 대하여 (양보단 질)

  • 로드맵, 그거 다 하다가 10년 지남..

  • 주니어는 다 아는가? 가 아니라 무언가를 찐~하게 할 수 있는지가 더 중요

    • 특정 부분을 깊이 있게 다룰 수 있는가?
  • 내가 하고 있는 분야 (내 플젝) 을 깊게 파고 있는가?

    • 꾸준히 만들고 피드백을 받으며 개선했는가?
    • UX 향상을 위해 다양한 방법을 찾아보고 시도했는가?
    • 코드 품질을 늘리기 위해 리팩토링을 시도하고 실험했는가?
    • 내가 얻어낸 코드를 공유하고, 노하우 알리고, 오픈소스화 했는가?


8. React, Vue, Angular 익히기

겉 보다는 속이 중요하다 !

  • 프레임워크는 추상화되어 있고 편리한데 속을 알 수가 없다..
  • 특정 프레임워크에 비의존적인 부분에 대한 학습이 중요하다.
    • 각 프레임워크의 동작 방식
    • 렌더링 원리
    • 상태 관리
    • 모듈 관리
    • 성능에 유리한 코딩방식

바닐라로 프레임워크 흉내내기
나름의 디자인 패턴 등 철학으로 리팩토링하기
다양한 툴보다는 하나라도 제대로 알기


9. 내가 선택한 길이 맞을까?

  • 열심히, 즐겁게 개발하고 있다면, 틀린 길은 없다.
  • 나를 믿고 전진하기
  • 이것저것 왔다갔다 안하기
  • 피드백을 받을 수 있는 방법 찾아보기
  • 다양한 멘토로부터 코드리뷰 받기
  • 커뮤니티를 활용할 수도 있음..


10. 나를 알아봅시다.

  • 이력서 써보기
  • 면접 기회 얻어보기


그 외,

  • 프로그래밍 세계는 정직하다.

    • 좋은 회사라면 정치보단 실력으로 인정받을 수 있는 분야이고 꾸준히 노력하면 보상 받을 수 있다.
  • Material UI 사용하는 것도 좋은 방법

    • CSS 를 잘 알아야 제대로 사용할 수 있기 때문
  • 결론: UX, 코드 품질 (유지보수가능성) 을 중점적으로 실력 늘리기

  • 좋은 회사 가려내기

    • 채용공고를 이번 것, 저번 것도 모두 보기
    • 여러 공고들에서 무엇을 중요시 하는지 보기
    • 함께하는… 등 협업을 중요시하면 일단 좋을 가능성 높음
    • 장비, 사람들의 자유성 등 면접에 가서 훑어보기
    • 면접에서 ‘을’로 대하면 가지 말라
    • 기술 질문 안하는 회사는 위험할 수 있다.
    • 깊이 있게 대화하고 날카로운 질문이 많았다 - 좋은 회사일 가능성 높음



2 부
연사 : 정호영 님 (코드스쿼드)
발표자료

  • 개발 커뮤니티 및 스터디 활동으로 의사소통 및 협업능력 길러야함 !
  • 개발 경험도 좋지만 운영해보는 경험이 매우 중요함

    • 실제 누군가 사용할만한 앱을 만들어서 운영해보기
    • 장애도 나보고, 풀리퀘도 만들어보고
  • 기업의 팀문화가 좋은지 알아보고 괜찮으면 작은 스타트업이라도 도전하는 것 좋음

    • 나중에 대기업 이직 충분히 가능
  • 3년차 채용까지도 신입이 부딪혀볼만 함

  • 학습 강도 유지 - 꾸준하게 할 수 있는 강도를 찾아야 함

  • 개발자는 최종 면접도 개발자 임원이 기술 면접할 가능성 매우 큼

  • 좋은 개발자란?

    • 팀의 샌산성에 긍정적인 영향을 끼치는 사람
  • 도서 추천



회고 ✍

  • 협업할 수 있는 기회를 정말 적극적으로 찾아야겠다.

    • 커뮤니케이션, 코드 품질, 다른 사람 코드를 통해 학습 등 얻을 수 있는 점이 너무 많으므로..
  • UX 향상 개발을 경험할 수 있는 방법 고민해보자.

    • debouncing 과 throttling 은 무엇 ?
  • 네트워크에 대한 공부 (HTTP TCP/IP)

    • 크롬 개발자 도구 - Network 부분은 모두 알아두어야 한다.
  • 내가 학습하고 있는 분야 (내 플젝) 을 깊게 파고 있는가?

    • 꾸준히 만들고 피드백을 받으며 개선했는가?
    • UX 향상을 위해 다양한 방법을 찾아보고 시도했는가?
    • 코드 품질을 늘리기 위해 리팩토링을 시도하고 실험했는가?
    • 내가 얻어낸 코드를 공유하고, 노하우 알리고, 오픈소스화 했는가?
  • 프로젝트에서 다룬 주요 내용 블로그에 정리하기

  • 도서 알아보기