티스토리 뷰

Log/.TIL

[TIL]171023-1029

가그린민트 2017. 10. 24. 09:20

10 / 28 (토) ~ 29 (일)


한국시리즈 우승까지 1승 !!!

그렇다. 이번 주말에는 지인들과 야구를 보고 시간을 보냈다. 




10 / 27 (금)

오늘 오전에는 Next Step의 미션을 제대로 진행하지 못했다. (금요일이라 그런가..) MVC 프레임워크 구현하는 부분을 진행하다 집중이 안되어 SLiPP에서 최근에 포비가 코드리뷰한 부분을 보기도 하다가 그냥 어제 공부했던 Servlet 내용을 정리하는데 시간을 보냈다. 

오후에는 학습했던 포비와 Servlet에 대해 이야기하는 시간을 가졌다. 포비(자바지기 박재성님)의 교육 방식은 주제에 대해 피교육자가 직접 실습하면서 스스로 고민하는 시간을 갖게 한 뒤, 해당 주제에 대한 이론을 알려주고 그에 대해 QnA를 하는 형태로 진행된다. 어제 실습했던 부분을 토대로 HTTP 웹 서버를 직접 구현시에 발생할 수 있는 문제점들과 그 대안으로서의 Servlet과 Servlet Container 특성을 알게되었다. 그리고 'multi-thread 환경에서 하나의 서블릿 인스턴스가 재사용될 때 고려해야 할 부분'에 대해 해결하지 못해 물어보고 이해하는 시간을 가졌다. (이 부분도 이전에 Servlet 정리하는 부분에 내용을 추가해두었다.)

그 외에 ServletFilter의 역할, DispatcherServlet의 역할 등을 알게되었고, 그 문답과정에서 

'객체를 map의 키 값으로 사용할 때는 hasp코드(hashmap 등)을 구현해두어야 한다. hash를 사용하면 복잡도가 1이므로 성능을 보장할 수도 있다. ', 

'원시타입이나 String을 객체에 담으라(유효성을 일일이 하지말고 객체로 추출할 경우 객체 생성시에 안정성을 보장할 수 있다. 클래스 쪼개는 것을 두려워 하지 마라', 

'ModelAndView를 사용할 경우 String(url)뿐만 아니라 JSON 등으로도 보낼 수 있다.' 등의 이야기가 기억에 남는다.

다음 미션은 서블릿을 사용하지 않고 우리가 만든 MVC 프레임워크만으로 동작하는 경험을 하게 될 것 같다.(Servlet을 상속받는 것은 DispatcherServlet만..)

그리고 포비와 개인 면담시간을 가졌고, 앞으로의 학습 계획에 대해 생각을 공유하였다. 1월말까지 웹 서비스를 구현하는 것을 목표로 학습과 병행하게 될 것이고, 린스타트업 모델을 기반으로, 빠르게 기능을 구현하고 피드백받는 형태로 작업을 진행하는 것이 좋겠다는 조언을 들었다.  그 과정에서 지금 수업 외적으로 API 활용 등으로 개발 리소스가 소모될 예정이라 수업 템포를 늦추는 쪽으로 이야기가 진행되었다. 이번 사업이 나 개인에게 동기부여를 준 것은 확실하지만, 성장에 관해서는 어떤 형태로 도움이 될지 막연한 두려움이 강했는데, 면담 이후에 선택하고 집중할 부분에 대해서 가져야할 시각을 얻은 것 같아 기분이 좋다. 멋진 플랫폼을 만들어 배움에 보답하고 싶다는 생각이 든 하루였다.

매주 금요일 저녁에는 사업 미팅을 하기로 계획되어 있었고, 양재역 토즈에서 시간을 가졌다. 포비와의 면담 내용을 토대로 개발 진행 계획을 세우기 위해 서비스의 기능들에 대해 세분화하는 시간을 가졌고, 이 내용을 토대로 기능의 우선순위를 정하고 단계별로 개발 진행 계획을 세울 생각이다.  그리고 나서 다시 개발 진행계획에 대해 토의하는 시간을 갖기로 했다. 추가적으로 사용자로부터 받아야 하는 데이터들에 대한 명세를 하기로 했다. 그리고 프론트엔드 개발자와 웹 디자이너가 필요하다는 데에 서로 공감했고, 웹 디자이너는 기획하는 친구가 알아보기로 하였는데.. 코드스쿼드에 프론트엔드 개발과 사업에 관심이 있는 사람이 있을지 궁금하다. 차주에 프로젝트에 참여할 사람이 있는지 한번 물어봐야겠다.




10 / 26 (목)

Next Step의 Servlet과 JSP 주제에 대해 학습. 간단한 실습이었고, 기능도 이미 만들어봤던 부분이라 미션은 금방 해결하였다. 해당 개념도 이전에 자바 웹 개발 워크북을 읽어봤던지라 그리 생소하진 않았다. 

Servlet이 구동되는 과정을 확인하고 JSP 페이지, ServletFilter를 간단히 구현해 보았고, 이전에 정리해두었던 내용들을 다시 확인해보았다. 어제 재민씨와 대화 중 자바 기반의 웹 페이지의 첫 사용자 접근이 느린 것에 대해 JVM 기반의 특성(바이트 코드)으로 첫 요청시엔 JIT에 의한 모두 컴파일 대상이 되지 않았기 때문으로 생각했었는데, 서블릿은 load-on-startup 값이 없을 경우 처음으로 HTTP Request가 올 때 init 메소드를 생성하기 떄문에 첫 요청을 보낸 사용자는 응답속도가 느려진다고 한다. [관련 사이트 Link]

그리고 추가적으로 어제 개발하던 로그인부분을 좀 더 보완했고(토큰 유효성 확인 및 프론트 쪽), 오후에 STS Toolkit을 이용하여 자바 코드를 AWS lambda에 올리는 경험을 했고, tram이 slackbot 생성 중 발생했던 문제를 trobule shooting 하면서 slackbot에 이벤트 발생 시 어떤 방식으로 AWS API gateway을 통해 lambda에 요청이 가는지 생각해보는 시간을 가졌다.

생각보다 집중이 되지 않아 별 소득이 없는 하루였다. 



10 / 24 (화) ~ 25 (수)

HTTP 웹 구현이 어느정도 마무리되었기에, 이번 실습과정에서 알게된 부분을 이야기하고 궁금한 점들을 묻는 시간을 가졌다. (HTTP 웹 구현 후 알게된 점) 포비와 이런 시간을 가질 때면 고급 개발자의 생각을 엿볼 수 있어, 이제 공부를 시작하는 나에게 있어서 많은 영감을 주는 것 같다. SE였던 나로서는 그동안 OSI 7 Layer 중 4계층 밑의 하위 계층에 익숙했었는데, 이번 프로젝트 이후 상위 계층에 대한 장벽이 조금 허물어졌고, 특히 Session과 System Architecture에 대해 이야기 했던 기억은 오래 남을 듯 싶다.

오후부터는 1차 미팅했던 부분을 기반으로 이번 달 개발 진행 계획을 세우고 작업을 시작했다.

우선 이번주엔 로그인 및 가입 기능을, 다음 주엔 문의하기 기능을 개발할 계획이고, oauth를 테스트해보았다. 아직 공부가 많이 부족한 지라 spring 사이트에서 제공하는 코드를 갖다 붙이는 정도에 그쳤는데, 프로그램이 굉장히 무거운 것이 제대로 적용이 되지 않았다는 생각이 든다. 


학습에 있어서 작은 성공은 언제나 옳다. ㅎㅎ


그래서 두 번째로 AWS cognito를 활용한 테스트를 진행하였다. AWS serverless workshop에서 해보았던 기억이 있기 때문이었다. 다만, 이번에는 인증 번호를 받고 확인하는 방식이 아니라, SSO를 적용하는 방식으로 진행해보았다. (인증번호를 받고 이를 확인하는 과정이 타겟 고객(3~40대 학부모)의 접근성을 떨어뜨릴 수 있을거란 의견이 있었다.) 결과적으로는 cognito를 사용하지 않고 페이스북과 google JDK를 사용해서 SSO를 적용하였다. 다만 아직 oauth에 대한 개념이 없는지라 유효기간이 있는 토큰을 어떻게 저장해서 유저의 유효성을 검증할 것인지에 대해(토큰을 어떻게 관리해야 하는지에 대해) 잘 모르겠다.

그래서 마지막으로 인증 메일을 보내는 방식으로 진행하였다. 다만 인증 번호를 받고 확인하는 방식이 아니라, 토큰을 서버에서 생성해서 링크를 보내고 해당 링크를 클릭하면, 추가 정보(P/W, 위치 등)를 받고 가입하는 방식으로 진행하였다. 과정에서 아직 클래스 설계가 안되었고 ORM에 대한 지식이 많이 부족하기에 JDBC 방식으로 작업을 진행하였다. 추가적으로 브라우저 상에서 Password 유효성 확인을 위해 JQuery를 써보았다. 메일보내는 부분은 이전 회사에서 php로 개발한 기억이 있기 때문에 크게 어렵지는 않았으나, 송신자의 유효성을 검증하는 단계에서 구글의 경우엔 Application 보안 수준을 체크 한다는 것이 신기했다. (그래서 일단 naver ID로 작업을 진행 ;;)

원래 수요일엔 월요일에 학습했던 함수형 프로그래밍을 좀 더 정리해두려고 했는데, 이 부분은 이번 주말에 작업해야겠다. 

그리고 화이트 과정 때 함께했던 재민 씨가 와서 이런 저런 이야기를 나누었다. 그동안 하고 싶었던 WebRTC를 하게되었다고 했고, 처음엔 같은 과정을 시작했지만 이제 저마다의 색을 가져가는 모습들이 신선했다. 나도 내 위치에서 분발해서 다른 이에게 좋은 영감을 주도록 노력해야겠다는 생각이 든 하루였다.



10 / 23 (월)

HTTP 웹 구현 (HttpRequest, HttpResponse 클래스 분리 및 Controller 인터페이스 구현)

Java 8 Lambda, Stream 에 대한 실습 (아, 너무 어렵다. 당분간 코드에 녹여내기는 힘들거 같다. 메소드를 확실히 숙지하지 않으면 많이 헤매게 되는 거 같다.)

HTTP & Network Basic 훑어보기 (한권 사두는것도 좋을거 같다. 다른 부분보다 헤더에 부분 내용이 딱 적당한것 같다. TCP/IP 완벽가이드는 너무 두꺼우니까 ㅠㅠ)



'Log > .TIL' 카테고리의 다른 글

[TIL]171106-1112  (0) 2017.11.07
[TIL]171030-1105  (0) 2017.10.31
[TIL]171016-1022  (0) 2017.10.20
[TIL]171002-1015  (0) 2017.10.03
[TIL]170925-1001  (0) 2017.09.26
댓글
링크
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total
Today
Yesterday