본문 바로가기
🗺️ Conference

[Conference] HelloWorld 24 (Google for Developers)

by inbeom 2024. 3. 31.
728x90
주니어 개발자, 학생을 대상으로 한 컨퍼런스로 다양한 개발자들의 실무 경험을 공유하고 시니어 개발자의 조언을 들을 수 있는 좋은 기회인 것 같다.

 

 

 

 

GDG(Google Developer Groups)에서 주최하며 Air premia, Mondrian Jnpmd 등의 기업에서 후원하는 컨퍼런스로 개발자들이 모여 경험을 공유하고 발표하는 것을 들을 수 있다.

 

총 5시간이며 이렇게 시간대 별로 원하는 주제의 발표를 선택하여 들을 수 있다.

 


 

 

 

(개인적인 생각을 포함하여 요약한 내용입니다)

1교시 - 시니어가 말하는 성장할 것 같은 주니어의 특징


스킬 (skill)

글쓰기/블로그 
> 전문성, 꾸준한 학습, 네트워킹, 취업 등 이득
> 마크다운(플랫폼 옮기기 편함), seo, 꾸준히 작성

문제해결 능력

> 클아이언트 요구 파악
> 시장, 고객, 회사 (무엇을 원하는지 알아야됨)

태도 (Attitude)

지속적인 학습과 성장 
> 새로운 기술/변화 꾸준히 공부
> 나만의 학습 루틴 (스터디 등)
> 동기부여 (보상, 주변 인물)

 

협업 (collaboration)

소통 방식
> 인사말과 배경, 본문을 포함하여 짧고 간결하게 소통 (상대방의 시간도 소중한 것을 알아야 한다.)

 

피드백 수용
> “내 코드에 대한 공격은 나에 대한 공격으로 간주한다” 
> 피드백 (과거의 행동 및 결과, 반성과 조언)
> 피드포워드 (미래의 행동 및 전략, 조언과 개선)
> 무조건 수용 할 필요는 없지만 (2명 이상한테 들었는가?, 반복해서 같은 이야기를 들었는가?, 신뢰힐 수 있는 이가 말하는가?)

자기 반성과 회고
> 업무일지 작성 (오늘 배운것, 힘든 사건 등을 정리하여두면 평가기간에 유용하게 사용)
> 회고 Tool : KPI 작성 (유지, 문제, 개선)

 

느낀점: 이미 아는 내용들이라 복습하는 느낌으로 잘 들었다.

 


 

 

2교시 - 요구사항부터 배포까지 SDLC 전체 주기 느껴보기

 

SDLC (Software Development Life Cycle) 

SDLC는 왜 필요할까?
> 개발 생산성 향상, 비용 절감 등

SDLC 모형
> 폭포수, 프로토타입, 나선형, 애자일 (보통 애자일 많이 사용함.. 우리 회사도)


1.요구사항 분석

> 고객사, VOC 등 경로 요구사항 수집
> PO/PM이 수집한 요구사항 분석
> 개발 방향, 가능 여부 판단 
-  정말 필요한 기능인가? (고객이 정말 필요한게 무엇인지 파악)
-  기존 기능에 영향도는 얼마나 있을까? (관련된 데이터, 기능들은 어떻게 처리할껀지 등)
-  기술적으로 가능할까?

 

2.요구사항 명세

> 기능 설계
> 화면 설계

3.설계 - 개발자의 영역

>  하위 호환성을 지켜서 설계 (프론트 캐시 등의 이슈로 문제가 될 수 있음.. 기존 버전 고려)
> 추가 요구사항 대응하여 확장 가능한 설계(유연성)
> 대용량 데이터 처리 시 성능 고려 (엑셀 import 기능이 느린 문제 발생 - serverless환경은 15분 타임아웃 발생..)  - 엑셀 row 별로 쪼개서 각각 처리 후 task로 전체 처리상태 확인

4.구현

> 변수명, 함수명 가독성 있게
> 적절한 자료구조와 알고리즘 (개발 기간이 중요하지만 시간/공간 복잡도 고려해보자)
> BE는 Indexing, Locking, Transaction 등
> 사용하는 쿼리 빈도 (where, order by, group by) 등에 따라 적절한 index 필요.. *Analyze 붙이면 됨

5.테스트

> 개발자 테스트 (Test code)
> 품질 테스트 (Qa, Qc)

6.배포

> 빌드하면 끝..? MSA라면 여러 모듈을 고려해야 한다
> 앱 버전 별 수정사항이 안 맞을 수도 있고 등등.. 버전, 환경 등을 잘 고려해야 한다

7.유지보수

> 코드 에러 (크리티컬한 에러면 Hotfix로 바로 배포, 보통 다음 버전에 반영)
> 스프린크 회고 (일정 산정, 지연 이유 파악)

 

느낀점: 발표자 분과 비슷한 규모의 기업에서 일하고 있어서 발표 내용이 공감도 많이 되고 재밌게 들었다.

 


 

 

3교시 - 코드리뷰문화 가볍게 경험하기


학생 코드 리뷰

> 일정 준수, 지식 부족 등으로 인해 코드리뷰 x
> 외부 문서(라이브러리 등)을 이해 없이 자유롭게 가져와 동작만 시킴
> 코드리뷰 안하면.. (스파게티 코드, 유지보수/기능 고도화 어려움, 오류 tracking 어려움)

 

주니어 코드 리뷰

> 일정 준수는 필수!
> 문제 해결을 위한 지식 부족 (그룹 스터디 등으로 보완)

 

협업을 위한 코드

> 스파게티 코드의 가능성 제거
> 유지보수 용이 (다른 팀원들도 코드를 봐야함)


코드리뷰 사항

> 데이터베이스 스키마, api설계, 아키텍쳐
> 성능, 자료구조, 비즈니스 로직
> 버그 발생 가능성
> 개발자의 실수/누락
> History 기반 코드 규칙, 정렬 등 


코드리뷰 장애물

> 시간 부족, 일정 지연, 리뷰의 부담스러움 등

장애 해소

> 시간 할당, 구조 리뷰, PR본문 활용, PR분리, 편의 개선
> 질문하기, 지식 전파, 배움의 과정 (사진 첨부)
> 리뷰 스타일, Rule적용(심각부터, 사소한 의견까지 등급별로 리뷰 작성)

 

고무오리 코드리뷰 (디버깅)

> 내가 예전에 작성했던 코드 history를 까보며 리뷰해보자..

 

느낀점: 쉬운 내용이었지만 내가 다니는 회사는 코드 리뷰가 거의 없어서 궁금했던 부분이라 잘 들었다

 

 


 

 

 

4교시 - NPM 속 보물찾기: 오픈소스로 공부하자!

  

전통 검색 

> AI에게 물어보기, 프로덕트 비교 등


NPM 트렌드 

> 패키지별 다운로드 수, 마지막 업데이트 날짜
> 패키지(라이브러리)를 검색하면 비슷한 패키지 들을 볼 수 있음
> 패키지 다운로드 수로 표준 패키지나 트렌드 현황 등 파악 가능
> 실제 유행 패키지와 실무에서 사용하는건 다를 수 있음

의존성 살펴보기

> pm2: 프로세스 매니저 
> pm2 -> blassed (Cli Interface library)
> pm2 -> chokidar (watch 기능을 가진 대부분의 라이브러리에서 사용)
*pm2는 여러 라이브러리의 의존성을 가져와 사용하는 것이기 때문에 가볍게 필요하다면 직접 chokidar를 가져와 사용해보자..


> 좋아하는 개발자의 Github 구독해두면 Github timeline에서 현황 확인 가능
> globby (Glob 패턴 처리 라이브러리)
*실제 기능 구햔 위주로 보고싶다면 micromatch, 편의를 위한 추상화를 보고싶다면 globby 보쟈
> 프로젝트의 의존성을 파악하면 이해하기 쉽다

겁먹지 말자

> 언어를 사용하면 사용할수록 익숙해지듯 코드도 보면 볼수록 익숙해진다
> 문서 확인도 필수 - *Can I use (News)

기능 단위로 코드 찾기

> 알고있는 모든 힌트(문자열, class, property 등)를 검색해보자
> 의존성(import)을 타고 들어가서 찾아보자

*Adapter 등의 이름들이 반복해서 나온다면 디자인 패턴이니 잘 봐두자

*다른 언어의 동일한 패키지도 살펴보자..(서버사이드 언어 한정) 언어별로 패키지(라이브러리) 완성도가 다를 수 있다

*다른 언어들의 코드들을 가져와서 클론코드 하쟈 
(ex: node.js -> java)

결론 - 탐색하기 > 분석하기 > 비교하기 계속 하자

 

느낀점: 확실히 시니어 웹개발자 분이라 아는 것도 많고 도움이 된 것 같다

 


 

 

5교시 - 잡식성 개발자에서 주니어 개발자

잡식성 개발 (잡부)

> 물경력 or 커리아가 꼬일 수 있다

“전략적 잡식성”이 필요하다

> 주관적) 이정표를 보며 중간 점검 필요
> 객관적) 내 경력들이 시장성이 있는가?

커리어 점검

> 주기적인 이력서 업데이트 (마지막 업데이트 후 한 일 들의 성과를 구체적인 숫자로 표현 가능한가?)

나의 역량과 시장 수요 확인

> JD들을 확인해보자, JD들의 키워드를 확인하며 나의 역량과 비교

조급해 하지 말자

> 불안감은 연차/경력과 상관없이 모두가 가지고 있으니 너무 걱정하지 말자
> 의미 없는 경험은 없으니 다양한 경험을 해보자

 

느낀점: 항상 커리어에 대해 고민하고 있었는데 너무 조급해 하지 말고 천천히 발전해 나가자 

 

 

 

주니어 개발자, 학생 대상이라 그런지 대단한 내용은 없었다.. 하지만 학생이라면 현직 개발자들의 이야기를 들을 수 있는 좋은 경험이 될 것 같다.

 

 

- 끝 -

 

728x90