1월, 2017의 게시물 표시

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

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

[Angular2 with TypeScript] 2. 서버 실행과정

이미지
npm start 명령어를 실행해서 서버를 가동시킬때 어떠한 과정을 거쳐 실행 되는것일까? 이제 막 6개월차 프로그래밍 공부를 하고 있는 나로서는 구체적인 동작은 설명할 수는 없으나 개략적으로  어떤 파일이 어떻게 사용되어지는지 알아보겠다. src 디렉토리 내부에있는 파일들이 실제 가동할때 쓰이는 것들인데 서버가 가동되기 시작하면 가장 먼저 바라보는 것이 main.ts 파일이다.  비쥬얼 스튜디오 코드를 통해 해당 파일 내부를 들여다 본다. 이것이 타입스크립트를 적용된 가장 첫번째로 살펴본 파일이다. 문법에 대해 설명하자면  import {} from '' ; 는 외부 라이브러리로 부터 중괄호 안에 있는 이름의  엘리먼트를 가져오겠다는 의미이다.  12번째 줄을 보면 platformBrowserDynamic().bootstrapModule(AppModule); 이 있다. 가장 먼저 실행되는 모듈로서 AppModule 이라는 것을 임포트해와서 부팅하겠다는 의미이다. AppModule은 위 임포트 구문에서보면 어디로부터 온것인지 알 수 있다. app/app.module app 디렉토리에 안에 app.module 이라는 이름의 파일로부터 가져온것을 알수가 있다. 모듈을 살펴보자. 원래 파일의 이름은 확장자가 ts인 app.module.ts 이다. 타입스크립트에서 임포트 구문에 쓸때는 확장자는 무시해도 상관없다고 한다.  1~4 : 아직은 알수 없지만 어떤 모듈들을 임포트 하고있다. 6: 실제 우리가 실행한 컴포넌트인 AppComponent를 가져온다. 컴포넌트에 대해서는 따로 설명할테니 지금은 그냥 넘어간다. 8~19: @NgModule() 은 이 파일이 모듈임을 명시적으로 알리고 그안에 설정할 메타데이터를 기록할 수 있는 곳이다. Json의 형태로 설정값들을 넣어주는데 마지막 속성으로 bootstra

[Angular2 with TypeScript] 1. 개발환경 세팅

이미지
블로그 이전했습니다~ 링크( https://steemit.com/@cicada0014 )  최근에 같은 팀을 하나 꾸려 웹프로젝트를 하게되었다. 제대로된 포트폴리오하나 만들어보자는 일념으로 시작하게 된 프로젝트인데, 맨 처음 구상했던건 사람들이 네티즌 수사대가 될 수 있는 플랫폼을 만들어보자는 생각이었다. 그런데 막상 시나리오를 짜보다보니, 정치라는 것이 좀 처럼 종잡을 수 있는 것이 아니었다. 워낙 스펙트럼이 넓었기에 예측이 되지 않았던 점이 첫번째, 플랫폼으로서 작동하기에 종종 알수 없는 행동들로 인한 피해가(예를들면 욕지거리의 글같은 것들) 예상 되는 것이 두번째 이유였다. 그래서 좀더 발전적으로 생각한 것이, 플랫폼으로서의 성격을 버리고 도구로서의 웹사이트에 집중하는 것이 어떻겠냐였다. 우리가 애초에 기획했던 것은 사람들이 네티즌 수사대로서 활동할 수 있도록 환경을 조성해주는 것인데, 방향을 바꾸어 그 인터넷 수사를 도와줄 수 있는 도구에 초점을 맞추고자 하였다. 심플하고, 빠르게 웹 리서칭을 도와줄 수 있는 웹앱을 만들려고 하고 있고, 프론트 기술에 관심이 많았던 나는 프론트를 하고싶다고 팀원들에게 이야기를 했다. 설계 단계에서 어울리는 프론트 프레임워크를 찾았다. 역시 가장 핫했던 것은 리액트와 앵귤러였다. 앵귤러는 두번째버전으로 16년 중반에 정식발매가 되었고, 가장 최신의 버전이었다. 기존 앵귤러의 단점을 보완해서 더 좋았다는 점도 참고할만한 했지만, 팀원들을 비롯하여 내가 가장 끌렸던 기술은 타입스크립트였다. 앵귤러2 팀은 타입스크립트를 주력언어로 삼겠다고 밝힌것을 조사하면서 알게 되었다. 앵귤러 2와 타입스크립트의 완벽한 조합은 객체지향, 관점지향으로서의 프로그래밍의 진가를 여실히 보여주는 듯하다. 우리 팀은 공부가 큰 목적이었기 때문에, 1주일에 한번씩은 자신이 공부한 내용에대해 세미나를 열기로 합의했다. 나는 팀원중에서 가장 먼저 앵귤러 프레임워크를 공부를 했기에 이 내용을 가지고 세미나강연을 했는데,

인간이 환경보호를 해야할 행동근거에 관한 고찰

이미지
서론 나는 환경을 전공했지만 환경에 대한 회의적인 생각을 가지고 있었는데, 일단 환경이 정말 내 삶에 어떤 영향을 끼치는지도 파악하지 못한 상태에서 무작정 입학해버린 상태였고, 진로에 대해서도 막연한 상태였다. 여타 다른 한국의 학생들과 마찬가지로 점수에 맞춰 대학지원을 했고 그렇게 환경생태공학사라는 타이틀을 달게되었다. 국영수탐구로 이루어진 전형적 입시만을 위한 공부로 인해 내가 무엇을 공부해야하는지, 무엇을 공부하고싶은지 깊은 고민이 없었다. 그리고 그 결과 대학생활은 개판 오분전이었다. 좁은 대한민국이라는 환경에서 고려대학교 학생이라는 것은 (내심 아닌척했지만) 아주 악질적인 자부심을 심어주었을지도 모르겠다. 아들을 위한 부모님의 용돈지원과 대학 4년 8학기동안 계속되었던 지급되었던 전액장학금은 나에게 어떤 절박감을 심어주지 못하였고, 그저 술과 사랑만을 쫓는 놀자대학생이 되게해주었다. 고대생이니까 어떻게든 취직은 하겠지! 라는 막연한 기대를 가지고... 4학년이 되자 막연한 기대는 확실한 불안감으로 되돌아 왔다. 그렇게 불안감을 가지고 장교로 입대를 하게되었다. 무지와 무능력에서 오는 주위의 무시는 나를 굉장히 위축시켰다. 그럼에도 다행으로 여기는건 그런 위축감을 극복하고자 책을 참 열심히 읽었다. 신기하게도 책 구입 목록에는 꼭 환경관련 주제의 책이 있었는데, 나의 4년을 부정하고싶지 않은 마음이 컸었던 것 같다. 나는 억지로라도 환경과 관련된 사람이어야 했다. 그래야 할 것 같았다. 그러나 문제는 나의 미숙한 철학과 행동에서 환경이라는 주제는 몸에 맞지않은 옷이었다.  환경이 오염되는 것은 막연하게 알고 있을 뿐이지 어떻게 되든 크게 관심이 없었다. 나만 잘먹고 잘살면 될 것이라 생각을 했고, 남들도 그렇게 행동한다고 굳게 믿었다. 앞서 이야기했던 악질적인 자부심또한 이 생각에 불을 지폈던 것으로 판단한다. 그리고 놀자대학생이었지만 어느정도 학점을 챙기면서 공부하다보니 공유지의 비극이라는 개념을 알게 되었다. 이 개념은 내가 환경

스타트업에 대한 방향성 회고

이미지
이번주는 참 많이 돌아다닌 주였다. 좌절감이 한껏 올라갔다가 또 한껏 곤두박칠 쳤다. 스타트업 얼라이언스에서 주최하는 테헤란로 커피클럽에 갔다. 스타트업 인턴들이 나와서 각자의 경험과 느낀점을 이야기하는 자리였다. 그 인턴들을 보면서 나도 할 수 있다라는 생각이 강하게 들었고, 나 역시 부족함이 하나 없다! 잘할 수 있겠다!! 생각을 하면서 다시 학원으로 돌아왔다. 수업 내용도 잘 안들리고 한시간정도는 부푼 기대감에 정신을 못차렸었다. 네이버 D2에서 주최하는 테크밤행사엘 갔다. 머신러닝을 공부하는 대학원생의 창업기를 바탕으로 네트워킹하는 시간이 있었다. 대학원이 꼭 필수요소인가? 창업자로서 기술 연구와 거리가 멀어지지 않는가? 에 대한 질문을 했고 대답은 만족스러웠다. 대학원은 필수요소가 아니며, 현재 온라인 상에서 나와있는 강의들이 워낙 잘되어 있 어서 그것만으로도 충분 할 수 있다고 하였다. 기술 창업을 하게 되더라도, 각 분야에 전문가들이 많이 있고 그들로부터 도움을 충분히 받을 수 있기때문에 문제가 되지 않는 다는 이야기를 해주었다. 끝나고 나서 네트워킹 시간이 되자, 좌절감을 느꼈다. 다들 어떤 기술을 실행함에 있어 자신감이 가득차보이는 눈빛이었고 또 그것을 통하여 자신들의 비전을 이야기 하고 있었다. 상대적으로 전문적 지식이 부족했던 나는 좌절을 느낄 수 밖에 없었다. 그리고 나서 나에게 다시 질문을 했다. 정말 하고 싶은게 무엇인가? 나는 무엇이 하고싶어서 창업을 하겠다고 한 건지? 내 행복을 위해서 나의 업을 위해서라고 천명했건만 나는 정작 어떤 업을 할건지 막연하게 시간을 미루고 있었다. 그래서 요즘에 철학에 더욱 관심을 가지는 것이다. 나는 계속해서 나에게 물어보고 나 스스로 답변을 한다. ... 나는 현실과 이상 그 사이에 있다. 나는 인성이 썩 좋은 편은 아닌 것 같다. 내 주위사람들은 나를 착하다고 하지만 정작 나는 그들에게 욕먹기

대선 출마한 안희정 지지게시글

이미지
2019년 3월 6일 수정 음... 뭐 처음 작성하던때가 17년 1월이었으니 글삭제는 안하겠지만 최근 안희정씨 관련 논란해서 더 이상 말을 하지 않겠습니다. 살다보면 이렇게 흑역사가 하나둘 쌓이는 거 겠죠? ㅎㅎ 흠흠 ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ 대선후보 뜻을 알린 안희정을 지지합니다. 여야 좌우를 떠나서 가장 우선해야할 가치를 잘 알고 있는 것으로 보이는 후보입니다. 다른 후보님들 훌륭한거야 워낙 유명하니 상대적 듣보인 안희정 지사가 어떤사람인지 관심정도 가져주십사 해서 글을 적습니다. 음 큰 주제로 나눈것만이라도 훑어보시고 아 이런 면이 있구나 꼭꼭 읽어주셨으면 좋겠습니다. 물론 좋은점만 있지는 않겠지요. 그럼, 어디서 태어나서 어디서 자랐고 어떻게 정치입문했는지를 구구절절 알기보단 몇가지 대표적 사례와 영상을 통해 어떤 사람인지 알아보겠습니다. 1. 인간적이다. https://www.youtube.com/watch… 계급장을 떼라 라는 프로그램인데요, 도지사의 신분을 숨기고 일일 이장님 타이틀을 달고 마을 주민분들의 실상을 보고서가 아닌 몸으로 직접 알아보는 장면입니다. 마을 주민분들의 충청도 특유 사투리와 함께 익살스러운 행동을 보면 웃음이 저절로 지어지지만, 마지막에 도지사인 것을 알게되었을때 마을 주민분들 반응을 보면 마음 한켠으로는 먹먹해지기도 합니다. 대의민주제에서 정치인들은 어떤 사람이어야 하는가를 다시한번 생각해보게 합니다. 물론 방송이고, 카메라가 앞에 있기때문에 과장적 연출은 있으리라 판단됩니다. 2. 네거티브에 대응하는 모습. https://www.youtube.com/watch?v=BIH32Rqrv3Y 이 영상은 충남도지사 후보로 나갔을때, 얼마전까지 새누리당 원내대표였던 정진석과의 토론 장면입니다. 이건 뭐 첨언할게 없네요. 3. 안보관 https://ww

스프링 기술에 대한 정리

수업 내용들을 들으면서 메모 했던 것을 정리한다. 스프링이라는 프레임워크는 하나의 함수이고 도구라고 생각한다. 왜 도구인가? 개발자들이 귀찮은 작업들을 하지 않고 개발에만 신경쓸 수 있도록 도와주기 때문이다. 왜 함수인가? 우리가 원하는 값을 요청하면 스스로 뚝딱뚝딱 원하는 값을 주는 모양새이기 때문이다. 먼저  발전이 어떻게 이루어졌는지 이해하는 과정을 적어보려고한다. 스프링으로의 발전 역사를 탐구하면서 이해해보도록 하자. 미리 알아야 할것은 다음 시간적 흐름에 등장하는 개발자들은 굉장히 귀차니즘이 팽배한 인간들임을 알리고 시작한다. 버전 1.1 처음 개발자들이 개발할때에는 의존이라는 개념이 없었다. 다형성 조차도 생각을 못했을 때이다. 의존이고 뭐고 다 내려놓고 생각해보자. 어떤 객체가 다른 객체를 쓰려고 한다 그러려면 사용하고자 하는 대상을 new 연산자을 통해 만들어야 했다. 예를 들어 Car 라는 객체가 있고, 이 객체는 타이어라는 객체를 의존하고 있다고 생각해보자. 버전 1에서는 Car 객체가 타이어 객체를 직접 new를 통해 생성해서 끼워주어야 했다. ex) class Car {  HankookTire tire= new HankookTire();  roll(HankookTire tire){}; // 차의 메소드, 한국 타이어를 매개변수로 한다     } 버전 1.2 그렇게 개발을 하다보니 타이어라는 객체가 한국타이어도 있고, 금호 타이어도 있는데 매번 다른 타이어를 끼우려고 하니 문제가 생겼다. 매번 직접 Car 객체로 가서 타이어에 대한 부분을 죄다 수정해주어야 했다. 이는 인터페이스를 통한 다형성 개념을 통해 해결되었다. ex) class Car {  //HankookTire tire= new HankookTire(); 매번 주석처리 하기도 불편하니.... GumhoTire tire = new GumhoTire(); // 금호타이어로 바꿔주었다! ro

[다큐멘터리] 경이로운 지구 감상평

경이로운 지구 다큐를 보면서 놀라웠던점을 회상해보자 ! 거시적인 시간을 빠르게 요약하니까 좋았다 . 이기적유전자에서 읽었던 것도 합치면 최초에 무기물의 바다로 이루어져있던 지구 . 한참을 소행성들과 충돌한다음에 지금의 크기가 되었다 . 이정도의 크기와 태양과의 적절한 거리가 생물이 살기에 아주 적당한 조건이 되었다 .  무기물들이 모이다가 , 대중적인 유기물 물질이 발생을 했다 . 이 유기물들이 일정한 패턴으로 모이다가 유전물질로 바뀐것같다 . 이들은 살려고 하는것이 목적이 아니었다 . 그저 자신과 닮은 물질들이 많이 생겨났고 , 하나같이 같은 동작을 하였다 . 주변 물질들로부터 자기와 똑같은 복제자로 만드는 것 / 중요한건 이들은 어떠한 목적이 없었다는 것이다 . 그런데 어느순간 자신의 몸을 유기물로 뒤덮게 되면서부터 복제시키는 것이 주 업무가 되어진듯 하다 .  그렇게 자라난 생물들은 무기물을 먹고 에너지를 확보하고 유전 에너지를 모은 것으로 보인다 . 처음에는 메탄위주의 대기상태 , 물에서만 살았던 생물들 . 1 밀리미터도 되지않는 원핵세포들이었다 . 첫번째 운석충돌이 생겼다 . 굉장히 큰 운석충돌이었기에 생물들이   못살아날줄 알았다 . 그런데 지하깊숙히 살고 있던 놈들이 있었다 . 아주 긴시간후 지구의 온도가 다시 내려가기 시작했고 , 미생물들은 다시 올라오기 시작했다 . 그 올라온 생물들 중에서 남조류의 조상들이 태어났다 . 이놈들은 지 스스로 에너지를 합성하기 시작했다 . 그 부산물로 나온것이 바로 산소와 물 . 이산화 탄소는 충분했겠지 . 따뜻한 기후와 충분한 유기물로 남조류는 크게 번성하기 시작했다 . 산소를 대량으로 방출하기 시작한