# 코드스테이츠 커리어 챌린지
### 면접 질문
1. Web2 개발이 기회가 많고 멘토도 많은데, 굳이 Web3를 선택하신 이유가 무엇인가요?
2. 본인이 가장 좋아하는 블록체인을 하나 꼽고, 그 이유를 대시오.
* 그렇다면 탈중앙화에 대해서는 어떻게 생각하나요?
* 그렇다면 속도와 확장성 측면에서 문제가 있는데, 굳이 이 블록체인을 써야 하는 이유가 있을까요?
* 블록체인이 어디에 가장 쓸모가 있고, 왜 써야 한다고 생각하나요? 또는 어떨 때 쓰면 안될까요?
3. 다음 게시글은 모 Web2 유명회사 CTO의 [페이스북 아티클](https://www.facebook.com/hacker.golbin
)입니다. 다음에 대한 본인의 의견을 구술하세요.
```
Web3 를 블록체인에 기반한 디지털 자산을 보상으로 주는 서비스. 정도로 보면 말이 되는 것 같긴 하다. 자산의 소유/교환/판매에 대한 권한을 사용자가 갖는다는게 다른 점. 다만 온전히 소유할 수 있는 자산은 개별넷의 토큰 뿐이므로 그 외의 탈중앙화 컨셉은 여전히 이해가 가지 않는다.
따라서 Web3 를 제대로 동작하게 하려면, 진정한 탈중앙화를 완성시키려면, 발전시켜야하는 것은 메인넷 각자의 독립적인 발전이 아니라 메인넷간에 데이터를 교환 할 수 있는 표준 프로토콜이어야하지 않나 싶다. 하지만 그렇게 하지는 않을 것 같다.
왜냐하면 Web3 를 주창하는 사람들은 진정한 탈중앙화를 원치 않을 것이기 때문이다. 코인과 가스로 돈을 벌어야하니까.
```
4. 본인이 진행한 프로젝트에서, 꼭 블록체인을 도입해야 의미가 있었던 기능을 하나 꼽고, 그 이유를 구현 과정을 중심으로 구술해주세요.
5. 마지막으로 본인이 알고 있는 Web3의 최근 1달 동안 있었던 사건, 관심있게 보는 프로젝트를 모두 설명해주세요.
* 그것이 산업 발전에 있어서 어떤 의미를 가지나요?
### 생각해보기
* 나만의 웹3에 대한 Thesis가 충만해야 한다.
* 일반적인 웹2 개발자가 아니라, 왜 웹3를 하는지, 왜 블록체인을 하는지가 가장 중요함. 생각해보기.
* 질문 예시: 본인이 가장 좋아하는 블록체인을 하나 꼽고, 그 이유를 대시오.
* 그렇다면 탈중앙화에 대해서는 어떻게 생각하나요?
* 블록체인이 어디에 가장 쓸모가 있고, 왜 써야 한다고 생각하나요? 또는 어떨 때 쓰면 안될까요?
* 웹3는 개발자의 패러다임 확장 (개발자가 해야 하는 일이 많다!)
* 단순히 웹2 스러운 접근으로는 부족 -> 스스로 개발 외의 다른 역량을 보유하고 있음을 보여줘야 함
* 컨트랙트 중에서 어떤 부분에 관심이 있는가?
* 보안, ZK (암호학), DeFi (금융)
* 영어 또는 디스코드를 통한 적극성이 있는가?
* 트위터를 하는가? 적극적으로 커뮤니티 활동을 하는가?
* 웹3는 글로벌이다
* 한국에서 머무르지 말고, 세계를 향하여 자신의 엔지니어링 역량을 드러내도록 하세요.
* 앞으로 할 일: 오늘부터 트위터를 만들어 영어 기술 블로그를 운영하고, 영어 이력서를 작성하세요.
### 이력서 특강 [김창준님](https://www.facebook.com/cjunekim/posts/pfbid0UuAkK4Uo28wMmizeWWSkhHrZtpTrC1LEjx4UjRdSDREzNw9QGY8kiXiJKiPSQLxXl)
* 많은 사람들이 이력서를 연대기로 작성한다. 거쳐갔던 회사를 역순으로 쓰는 거다. 근데 이게 상당히 사용자(독자) 비친화적이다. UX가 떨어지는 거다. 사용자는 이걸 읽고 정보를 분해 재조립하는 인지적 단계를 거쳐야 한다. 역량순으로 이력서를 작성하는 거다. 사용자는 궁극적으로 내 역량이 궁금한 것이기 때문에.
* 갑돌이 전자 (2019.3.1~2020.5.13)
* XX 프로젝트에서 코어 엔진 리엔지니어링 진행
* 인프라스트럭쳐 개선 프로젝트에서 뭐뭐 담당
* YY 프로젝트에서 테크니컬 리드 담당
* 홍춘이 소프트 (2015.8.9~2018.12.31)
* AA 프로젝트에서 QQ 기술로 유지보수
* BB 프로젝트에서 LL 기술로 성능 개선
* CC 제품 프로토타입 개발시 팀 리딩
* 뭐 이런 이력서가 있다고 하면, 이걸 헤쳐 모여 한다. 나에게 정말 중요한 역량이 뭘까, 그리고 내가 지원하려는 회사에서 정말 필요로 하는 역량이 뭘까, 이걸 물어야 한다. 그래서 그 역량을 뽑는다. 그리고, 이 역량이 존재한다는 evidence를 나열한다. 예를 들어,
* 시스템 개선 및 리팩토링/리엔지니어링 역량
* 갑돌이 전자 XX 프로젝트에서 코어 엔진 리엔지니어링 진행 (x년x월~y년y월)
* 홍춘이 소프트 BB 프로젝트에서 LL 기술로 성능 개선 (x년x월~y년y월)
* 팀 리딩 역량
* 갑돌이 전자 어쩌구 (x년x월~y년y월)
* 홍춘이 소프트 어쩌구 (x년x월~y년y월)
* 쿠팡 채용 페이지를 예시로 해서 보자.
* 여기에서 "업무 내용"과 "지원 자격", "우대 사항"이 핵심적 정보의 전부다. 상당히 빈약하지만 채용 공고가 보통 이런 수준이니 이걸 갖고 풀어보자. 이 세가지가 사람을 뽑을 때 중요하다는 이야기이기 때문에 이 회사에 지원하는 이력서를 쓴다면 적어도 이 세가지를 강조해야 한다. 이 중에서 "Unit/UI Test 작성 경험이 있는 분"를 예로 들어보자.
* 연대기순으로 적지 말고, Unit/UI Test라는 항목을 따로 뽑아서 이 주제에 관련된 경험들을 뽑아서 추려야 한다. 근데, 이 때 많이들 실수하는 게, "나는 이걸 할 줄 안다" 혹은 "나는 이걸 해 본적이 있다"를 나타내는 것에서 그친다는 점이다. 그러면 안된다. "나는 이걸 잘한다"가 나타나야 한다.
* 순수하게 이력서만 보고 이 사람이 이걸 잘하는구나 하는 판단이 설 수 있어야 한다. 예컨대,
* Unit/UI Test 작성 역량
* 유닛 테스트로 동시성 버그를 잡다 : abc 프로젝트에서 기존 안드로이드 프로젝트에 동시성 버그 출현. 당시 회귀테스트가 없던 레거시 코드 상황. 해당 코드 담당자와 짝 프로그래밍을 통해 도메인 지식을 얻으며 하나씩 유닛 테스트를 달면서 데드락 해결. 동시성의 독립적 실험을 위해 스케쥴러를 Mock으로 만들기도 했음. (2018.1~2018.2)