woniper

[신림 프로그래머 세미나] 세미나 후기 본문

이야기

[신림 프로그래머 세미나] 세미나 후기

woniper1 2015. 3. 22. 14:05

  2015년 03월 21일(토)

  신림에 사시는 개발자 분들이 모여 하나의 그룹을 만들어서 서로 기술 공유하고 공부하는 모임이였던거 같다. 그 그룹에 계신 분들을 몇분 알아서 얼핏 듣긴했고 페이스북 그룹을 통해서 보기도했다.

근데 그 분들이 세미나를 열었다. 기대되는 세미나였고 01B와 함께 세미나에 참석했다.


세션 시간표

시간 

제목 

발표자 

13:00 ~ 13:40

보안 기초 

오학섭 

13:50 ~ 14:40

프로세스 개선기 

정재한 

20분 휴식 

15:00 ~ 15:40

Spring Boot와 함께하는 API Gateway 프로토타입 구현 

류재섭 

15:50 ~ 16:30

이벤트 소스 학습 내용 공유 

최범균 

16:40~17:10 

HTTP2 소개 

심익찬 


보안기초

  웹 개발을 하며 놓치기 쉽고, 어려운 보안 부분을 설명을 해주셨다. 대부분 어떠한 알고리즘이 있고 어떤 상황에 쓰는지 설명을 해주셨다.

  • 대칭키 : 암호화/복호화 할 때 사용하는 Key가 같다. DES, AES, SEED와 같은 알고리즘이 있다. 속도가 빠르지만 key를 관리하기 쉽지 않다.
  • 비 대칭키 : 암호화/복호화 할 때 사용하는 Key가 다르다. RSA와 같은 알고리즘이 있고 속도가 느리지만 Key관리가 쉽다.
  • 해시함수 : 메세지를 나누어 해시값으로 변환하는 방식이다. 메세지는 해시값으로 변경이 가능하지만 이와 반대는(해시값 -> 메세지) 불가능 하다.
이것 말고도 몇가지 더 있었는데 정확히 생각은 않난다. 그리고 암호화 알고리즘은 용어 자체도 생소하고 어려운거 같다. 나중에 발표 자료가 올라오면 좀 더 참고해야겠다. 추천하는 책으로 자바와 암호화라는 책을 추천해주셨다.


프로세스 개선기

  회사의 개발 방법과 협업을 개선하는 과정을 발표해주셨는데, 굉장히 흥미로운 주제였다. 간단히 설명하면 기존 개발 방법과 협업은 짜여진 틀 없이 진행되었다고 한다. 예를 들면 타 부서와 협업을 전화, 이메일, 메세지 등등 통일되지 않은 의사소통 도구를 사용해 히스토리를 찾기 힘들고 이슈 관리가 되지 않았다고 한다. 소스 버전 관리는 svn을 사용했다. svn을 사용해 소스 관리에 있어 conflict나는 부분을 merge하는 시간이 너무 오래걸려 통합하는 시간이 꾀나 많이 걸렸다고 한다. 그래서 발표자분과 회사 팀장님을 주축으로 회사 개발 프로세스를 개선하기 위해 몇 가지 방법을 찾았고 이와 같은 솔루션을 적용해 나갔다고 한다.

  • jira
  • confluence

  • jenkins

  • git

jira와 confluence를 이용해 이슈관리, 프로젝트 관리, 기획, 협업 등을 했고 모든 업무 처리나 처리된 업무를 자동으로 종합해주며, 애자일 방법론에 맞게 sprint를 조절해 가며 개발 할 수 있게 해준다고 한다. atlassian 제품으로 서로 연동이 가능하고 모든 이벤트(댓글, 글 등록 과 같은)에 관련된 사람에게 이메일을 보내준다고 한다.
jenkins를 사용해 프로젝트를 지속적 통합이 가능하게 하므로 개발자가 일일이 소스를 merge하며(물론 git에서 통합하는 과정에서는 있을 수 있다.) 통합하여 배포 할 필요 없이 자동으로, 그리고 지속적으로 통합해 배포가 가능하다. jenkins는 나도 회사에서 현재 사용하고 있는데 여러 플러그인이 존재해 여러가지 추가 기능을 사용 할 수 있고, 사용해 보면 정말 편하게 배포가 가능하다. 물론 이것도 공부가 필요한 부분.
git을 사용해 중앙 집중식 소스 관리가 아니라 branch를 사용해 소스를 관리해 많은 개발자들이 붙어 개발해도 svn보다는 편하게 개발이 가능하다. svn 보다는 기능적으로나 개념적으로 git이 편리하고 간단하고 빠르다.
이렇게 프로세스를 개선하기란 작은 회사에서도 바꾸기는 힘든데 들어보니 꾀나 인원이 많은 회사에서 프로세스를 바꾸기란 쉽지 않다는 생각인데, 회사에서 프로세스를 개선할 여지를 주었다는건 그만큼 개발에 대한 이해와 중요성을 알고 있는 것 같다. 처음 개선하기 위한 분들이 대단하게 느껴진다. 나도 스타트업 회사에 다니고 있지만 몇 안되는 인원과 협업하기 위해 여러가지 방안과 노력을 했는데 이것도 쉽지 않았다.
발표에서 별거 아닌것 처럼 말했지만 대단한거라고 생각된다.


Spring Boot와 함께하는 API Gateway 프로토타입 구현

  요즘 그렇게 핫 하다는 API Gateway를 그것도 spring 프로젝트에서 핫 하다는 Spring boot로 구현하는 발표였다. 정말 기대한 내용이다. API Gateway란 서로 다른 기능을 담당하는 API를 하나로 통합해주는 인터페이스로 빠른 응답속도, 유지보수, 적어도 2개 이상의 프로토콜, 시스템 모니터링과 관리의 용이성이 중요한 부분이라고 한다.

예를 들어 회원 조회하는 API, 게시물 관리 API 이렇게 두개의 다른 프로젝트로 구성된 API가 있다고 가정했을 때 client입장에서는 이 두 가지 API를 다 알고 개발 하기란 API가 많아지면 많아질 수록 어렵고 복잡하게 된다. 그래서 이를 하나로 묶어 client는 하나의 API만 알게 하고 실제 기능을 요청, 응답해주는 문이 바로 API Gateway 라고 생각하면 된다.

기대하고 본 발표였지만 소스를 정확히 못봐서 아쉬웠고 공유가 된다면 꼭 보고 간단하게 구현해보고 싶은 주제다. 요즘 나도 관심있게 보고 있는 부분이기 때문이다.


이벤트 소스 학습 내용 공유

  이벤트 소싱이란 어플리케이션의 모든 상태 변화를 순서에 따라 보관하는 것을 말한다. 이 말은 무슨 말이냐 하면 이벤트란 어떤 값(상태)가 바뀌는 것을 이벤트라고 하는데 이 값(상태)이 변경 될 때 마다 저장하는 것이다. 여기서 중요한건 순서대로!! 저장하는 것이 중요한데 이벤트가 발생한 시점이 바뀐다는건 데이터가 꼬일 수 있다는 것이다. 그런데 왜 번거롭고 어렵게 이벤트 소싱이라는 것을 사용해서 개발을 하냐라는 생각을 할 수 있는데 바로 기능 변경에 유연함 때문이다. 기능 변경이 유연하게 이루어 지게 하기 위해서 SQL을 사용한 코드를 사용하기 보다는 ORM을 사용하는게 더 유연하다. ORM은 내부에서 실제로 쿼리로 동작하지만 개발자는 도메인에만 신경쓰고 객체지향적 코드에 집중 할 수 있다. 하지만 SQL에 의존적인 코드가 된다면 객체지향적이지 못하게 되고 도메인을 변경하면 테이블 자체도 변경해야 하기 때문에 손이 많이가고 실수 할 확률이 높다. 그런데 이 정도 설명으로는 왜 이벤트 소싱이 기능 변경에 유연한지 알 수 없다. 예를 들어 설명하면 도메인에 사용자가 회원가입한 날짜를 보여 달라는 기능 추가 요구사항이 발생했을때 도메인에 날짜 변수를 추가하면 기존에 쌓여있던 이벤트 소싱은 모두 그 날짜가 자동으로 입력된다. 여기서 나도 의문점이 있는데 기존 이벤트가 쌓여있고 적용이 된다는 것은 이해가 되는데 어떻게 기존 날짜를 알 수 있을까 라는 의문이 들었지만 조금 더 공부해봐야 할 부분인 것 같다.(뭔가 부실...ㅋㅋ) 아무튼 이런 장점 때문에 이벤트 소싱을 사용하는데 프로젝트 도메인이 복잡하면 복잡할 수록 이벤트 소싱을 적용하는게 더 유리하다고 한다.


HTTP2 소개

  약 15년? 16년? 만에 HTTP에 새로운 버전이 나왔다. 1.1에서 2로 버전업이 이루어졌고, 속도가 굉장히 많이 개선되었다. 아직 1.1도 공부를 못했는데 버전2라니... 가장 중요한 부분은 SPDY라는 구글에서 만든 프로토콜을 선택해 HTTP2에 적용됐다는 것이다. 앞에 말했듯이 속도가 상당히 개선 되었고 자세히는 모르겠지만 리소스를 얻기 위한 통신이 변경 되었다고 한다. 


후기

  맥북을 받치고 작업 할 수 없어서 조금 불편했지만 전체적으로 흥미로운 발표 내용이였고, 신림에서 개발자 분들이 모여 이렇게 세미나 까지 열어 발표하는 모습을 보고 많은 자극을 받았다. 더 열심히 해야겠다. 예전에는 세미나라면 물불 안가리고 거의 다 가는 편이였는데 요즘에는 편식을 조금 하는편이다. 내가 많이 배울 수 있는 세미나인가 생각해본다. 이번 세미나 역시 그랬고, 특히 이벤트 소싱이 흥미로운 주제였다. 사실 발표 자료를 먼저 보긴 했는데 그때는 이해를 잘 못했다. 근데 이번에는 미림여고에서 세미나가 진행되어 학생들도 꾀나 많이 참가해서 그런지 몰라도 발표를 정말 이해하기 쉽게 설명해 주셨고 덕분에 나까지 잘 이해할 수 있었다. 하지만 발표는 발표일뿐 내가 직접해보면 더 어렵고 복잡하다는걸 느낄 수 있을 것같다. 토요일 오후 시간을 대부분 보냈지만 별로 아깝지 않은 시간이였다. 이런 소규모 세미나도 더 많이 열렸으면 좋겠다. 뭔가 더 알차기도 하고 가볍게 듣기 좋다. 사람도 너무 많지 않아서 더 좋고!!

아참, 사진을 하나도 못찍어서 사진이 없다.

'이야기' 카테고리의 다른 글

[Spring Camp 2015] 컨퍼런스 후기  (7) 2015.04.19
[교육]사내 인턴 교육을 하며 느낀점  (0) 2015.04.03
[교육] 사내 인턴 교육 - java과정  (0) 2015.03.18
애지중지 맥북프로  (0) 2015.03.14
2014년 정리  (0) 2014.12.17
Comments