7월, 2017의 게시물 표시

개발팀장이 되면서 겪게된 점들 1

이미지
                                                         <팀원을 모집하기 위해 고군분투하는 모습이다. > 첫 한달  개발팀장을 맡다 2021년 5월 , 기존에 있던 CTO분이 휴직(개인사)을 하게 되면서    개발에 대한 모든 권한을 내게 일임하였다.   개발에 대한 모든 의사결정을 전부 내게 맡긴 것으로 ,   어느 정도 규모가 있는 회사의 의사결정권한을 갖게 된 것은 그만큼 내게 큰 신뢰가 있었음을   알수 있게해주는 대목이었다. 그러나 전혀 예측하지 않았던 상황이기에 준비가 되어있지 않았던만큼 처음에는 삐걱거렸다. 가장 첫번째로 어려움을 겪었던 것은 업무의 배분이었다.   관리자가 되니까 해야할일은 업무를 만들고 또 그것을 팀원들에게 분배하고 잘 되고있는지 취합하고 관리감독을 하는것이었다.   군 시절 장교로 복무하면서 겪어봤던 일이긴 했지만, 군복무 당시에도 그닥 잘 하지는 않았던 것 같다.   그럼에도 어쨌든 전반적인 시스템을 이해하고 있었고, 어떻게 구현해야할지에 대해서는 어느정도 경험이 쌓여있었기때문에 큰 문제가 없을 줄 알았다.   실무자로 일을 할 때에도 항상 업무를 받아서 하지는 않았다. 스스로 돌이켜보건대, 나는 주어진 업무가 없으면 스스로 만들어서 제안하고 기획하여 업무를 진행했다.  조그마한 스타트업이었던 첫 회사에서부터  내가 할일은 내가 만들어서 곧 잘했다. 어떤 큰 방향만 정해져있다면 그건 큰 어려움은 아니었다. 나에게 일은 항상 있었다.   매니저가되면서 달라진게있다면 내가 할일만 만드는 것은 아니라는 점이다 . 남이 할 일도 만들어줘야했다.  다행히 팀원들에 대한 면담을 실시한 결과,(팀원을 맡게되자마자 했던 부분)   마이크로 매니징을 원하지는 않았기때문에 큰 그림을 그리는 정도만 준비하면 됐었다.   문제는 내 실무를 동시에 진행하면서 팀원들의 업무 방향도 설정해야했기때문에 시간이 배로 들게 되었다는 점이다. 물론 두배로 일하지는 않았다. 대신에 내 실무시간을 줄였고

Typescript를 이용한 Express. Inversify js 를 이용한 IOC를 구현해보기 -

이미지
블로그 이전했습니다~ 링크( https://steemit.com/@cicada0014 )  요즘 한창 타입스크립트를 이용해서 express 서버를 구축하고 있다. (막간을 이용해서 홍보 / 천기new설 포스텔러 ) 코드리뷰를 받으면서 많이 부족함을 느꼈다. 나는 용어를 명확하 이해하지 않고 개발을 하고 있었는데, 용어 설정에 신중함을 기해야 겠다. 코드를 살펴보니 전체적으로 의존성 주입이 애매했다. 코드를 짜면서도 매번 매핑시켜주는 것이 귀찮아 지기 시작했는데, 시간없음을 핑계로 해당 라이브러리를 제대로 파악하지 않았다. 검색을 해보니 inversify.js 라는 훌륭한 라이브러리가 있었다. (타입스크립트도 지원되니 딱 알맞았다) 하지만 한국어로 된 포스팅은 없었다. 우리나라에서는 JAVA/Spring이 강세라서 그런건가 node express를 사용하시는 다른분들은 IOC를 어떻게 구현하실까 Vue js를 사용하시는 분이 inversify에 대한 포스팅을 해준 것이 구글 한글검색에서는 전부였다.  한글로된 2번째 inversify 관련 포스팅이라 생각하면서 작성해본다. Spring을 써봤던 기억을 더듬고, Angular에서 의존주입하는 방식을 접목해서 구축해보았다. express typescript가 널리 번창하기를 바라는 사용자로써 일조를 하고자한다. 해당 깃 리포지토리는 이 url로 클론하실 수 있습니다. https://github.com/cicada0014/jwt-practice.git inversify 홈페이지 가이드를 살펴본다. npm install inversify reflect - metadata -- save inversify 말고 reflect-metadata 라는 것도 설치해야 함을 알 수 있다 이 포스트에서 다루고자 하는 내용을 벗어나므로 간단하게 설명하고 넘어간다. 컨테이너에 컴포넌트들을 등록하고 자동으로 주입을 하기 위해서는 컴포넌트의 내부를 들여다

JWT (JSON WEB TOKEN) / passport 와 연동해서 typescript + express에서 구현해보기!!!

이미지
블로그 이전했습니다~ 링크( https://steemit.com/@cicada0014 )  로그인을 구현하는데 있어서 크게 세션과 쿠키 방식이 있다고 한다. 세션도 크게보면 쿠키의 일종이며, 서버의 메모리를 쓴다는 점이 특징이다. 쿠키보다 세션이 보안적인 측면에서 더 좋다고 생각해서 코딩을 하고 있었는데, 서버를 업데이트하고 배포를 할때마다 서버가 재시작되는 점이 있었다. 그렇게 되니 서버의 세션이 자동으로 종료되는 점이 있었다. (실제 사용자가 있다면 큰 불편함이 발생) 물론 세션을 쓰면서도 서버의 재부팅과 관계없이 유지하는 방법이 있겠지만 회사 대표님께서 말씀해주신 JWT (JSON WEB TOKEN) 방식을 사용해보았다. JWT 에 대한 자세한 설명은 다른 블로그에서 자세히 해주고 있으니 참고하기 바란다 실제로 typescript  + express 환경에서 어떻게 구현할 수 있는지 초점을 맞출 것이며, 로그인에 많이 쓰이고 있는 passport js도 곁들일 생각이다. 요즘에는 자체 로그인 구현을 잘 하지 않는 편이니까. 가장 대중적인 플랫폼인 페이스북과 연동해본다.(Facebook Login API 문서가 잘 되어있다) 프로젝트를 만들며 시작 하자 해당 리포지토리는 다음 깃헙주소로 클론하실수 있습니다 . https://github.com/cicada0014/jwt-practice.git 일단 inversify를 이용해서 컨테이너를 사용한 express 앱을 구현한다  inversify+express 서버 구축의  자세한 내용은 이곳을 눌러 확인하자  위 프로젝트와 더불어 추가해줄 명령어는 다음과 같다 npm i -S passport passport-facebook jsonwebtoken @types/jsonwebtoken @types/passport @types/passport-facebook 이제 모듈들이 다 준비가 되었고, 링크에 있는 대로 진행했다면 다음과 같