본문 바로가기
카테고리 없음

NHN FORWARD 22!!

by M개발자 2023. 1. 8.
반응형

키노트

NHN 서비스를 소개해주는 시간이었다. 그 중에서도 AI 소개가 가장 기억에 오래 남았는데, 저작권의 문제로 박근한 이사님을 AI가 카툰으로 그려준 것과 AI로 만든 박근한 이사님의 발표 영상이 인상 깊었다.
AI TTS도 다루었는데, 동화책을 읽어주는 게 성우가 아닌 감정도 표현할 수 있는 AI 그리고 부모님의 목소리로 들려주는 동화 등 구현하고 있다는 점에서 감정까지 담은 AI라는 게 놀라웠다. 솔직히 유튜브에서도 흔히 들을 수 있는 AI TTS일텐데, 이렇게 누군가의 직업의 자리를 대체할 수 있다고 생각하니 유튜브와는 다르게 느껴졌다. 그리고 세션 시작, 끝날 때도 자연스러운 AI TTS를 접한 걸 보니 이미 성우의 자리를 대체한 지는 오래되었나보다.
그 외에는 이 뉴스 기사에서 확인할 수 있다 ㅎㅎ

부스

2층, 5층에서 행사를 진행했는데 각 층마다 스폰서와 그로스 부스가 위치하고 있었다. SNS를 팔로우한다거나 뉴스레터를 구독할 경우 롤렛 또는 무조건 선물 증정을 해주었다!
그래서 나는 책만 출판사의 롤렛으로 책을 받을 수 있었다. 롤렛을 돌려서 MSA 책이 나왔는데, 그 책은 다른 사람들이 모두 가져가 없어서 'IT 개발자의 영어 필살기'라는 책을 받을 수 있었다!!
그리고 NHN 클라우드의 링크드인과 카톡 팔로우를 해서 그립톡을 받고 NHN 두레이의 무나 스티커도 왕창 가져왔다ㅎㅎ 두레이분이 행사장 돌아다니시면서 이 스티커 다 나눠줘야지 집에 갈 수 있다면서 나누주시기도 했다. 그리고 두레이 캐릭터 인형탈이 사진을 찍어주기도 했다! 나도 물론 같이 찍었다~~! (두레이 스티커에는 두레이 회사 로고도 있는데, 마다하지 않고 내 자리 이름표에 붙였다. 우리 회사 로고와 같이 있는 그림이... 봐줄만 하지는 않다...ㅎㅎ)
인프런도 설문에 참여하거나 인스타 팔로우를 하면 30% 할인 쿠폰과 인프런 로고 리무버블을 주셨다!

점심

회사 분들 중 강연하시는 분이 있어 초대장을 통해 참가하시는 분들도 계셨다. 초대장일 경우에는 점심 식사 제공!! 참가자로 선정된 경우에는 선착 1200명에게 점심을 제공해주었다.
이런 행사 참여는 처음이라 9시부터 입장 및 등록이 가능하다고 해 9시 10분 쯤 도착하면 여유가 있겠지 했지만 모두들 9시 이전에 와있다는 점이...! 아기에게 깨달음을 주었다,,ㅎㅎ 그래도 1200명 안에 들어서 점심식사 겟!!
아무 트랙에 앉아서 식사 쿠폰을 자리에 두면 직접 가져다 주셨다~~!

게임 부스

게임 부스에는 코드 타이핑, 틀린 코드 찾기, 메이즈 레이싱, 포워드 카드 매칭 총 4가지 게임이 있었다.
나는 그 중 1분안에 코드를 치는 것과 틀린 코드 찾기를 해 도장 4개를 모아 간식으로 바꿔 먹었다 ㅎㅎ!! 점심시간에 가서 그런지 사람이 바글바글했다.
다음에도 이 게임들이 나온다면!! 코드 타이핑은 코드가 긴 자바를 피해 js나 파이썬을 추천하고 틀린 코드 찾기는 제한 시간이 1분이라 포워드 카드 매칭을 추천한다~~!

세션

11:00 ~ | track 6 | 노코드 마케팅 도구

제목이 노코드 마케팅이라 그런지 개발자 반 비개발자 반이었다. 와기 개발자로서 많은 것이 신기했는데 노코드 도구를 만드는 것 자체가 신기했다!! 이 세션을 들었다고 하니 회사분들이 NHN 클라우드 홍보하는 느낌이라고 하셨는데, 확실히... 발표 듣는 내내 클라우드가 대단해보였다ㅎㅎ
MS 분이 발표를 진행하셨는데! 발표를 잘하셔서 집중이 잘 되었다!! 개발 과정과 마케팅 도구 사용방법을 발표하셔서 메모하다가 그냥 경청하게 되었다. ㅎㅎ

발표 내용

시민 개발자들도 노코딩을 할 수 있는 서비스를 만들 수 있는 MS의 power platform이다. 그런데 한국에서 sms 전송도 노코딩으로 하고 싶은데, 기존 azure communication은 미국 내에서만 가능하여 다른 해결 방법이 필요했다.
그래서 NHN Colud와 일종의 콜라보를 하여 앱에서 sms 전송 API 호출할 수 있는, open API 문서 자동 생성 오픈 소스 프로젝트를 개발하게 되었다.

13:00 ~ | track 7 | 클라우드 이전하기

이 세션은 혼자 보러 가게 되었는데, 어쩌다보니 개발실장님과 같이 듣게 되었다... ㅎㅎ
NHN 커머스의 물리 서버를 클라우드 서버로 이전한 내용과 DB 마이그레이션에 대해 발표해주셨다! 생소한 내용들이라 이해하면서 메모하는 게 벅차 열심히 이해하면서 들을 수 있도록 집중했다.

14:00 ~ | track 2 | OAuth

엄청난 인기 세션!!! 이전 세션을 마치고 후다닥 5층으로 올라왔는데 해당 트랙에 들어가는 줄이 무지막지하게 길었다. 마침 팀원분들도 줄을 서계셔서 오늘 처음 인사하게 되었다! 줄 서있는 내내 개발실장님과 같이 세션을 들은 것과 두레이 스티커랑 부스에서 받은 상품들을 자랑했다 ㅎㅎ 줄이 너무 길고 해당 트랙에 계속 머문 참가자들도 있어 트랙 내에 내가 앉을 자리가 없었다...ㅠ 결국 차장님의 자리를 가위바위보로 뺐어 앉아서 듣게 되었다,,,ㅎㅎ 물론 차장님도 자리가 생기셔서 앉으셨다!

발표 내용

  • 인증 : Authentication (신분증)
  • 인가 : Authorization (소유물 빌려주는 행위)

적용 사례

  • 소셜 로그인
  • SNS 로그인
  • SNS 사진 에디터

Oauth 1.0 인가 프로토콜

  • Resource Owner - Oauth Client - Oauth Server
  • 문제점
    • 스코프 개념이 없다.
    • 역할이 확실히 나누어져있지 않다.
    • 토큰 유효기간 문제가 있다.
    • 클라이언트 구현 문제가 있다.

2.0 인가 프레임워크

  • 스코프 기능 추가하고 클라이언트 복잡성 간소화하였다.
  • Bearer token + TLS
    • 해당 토큰을 소유하는 것만으로도 권한을 부여해 https를 강제로 사용해야 한다.
  • 토큰 탈취 문제 개선
    • access 토큰에 접근하여 사용하는데 해당 토큰의 유효기간은 짧다.
    • access 토큰이 탈취되더라도 해당 토큰이 살아있을 때만 사용이 가능해 탈취 문제를 개선하였다.
  • 제한적인 사용 환경 개선, Grant
    • 다양한 플로우를 제공한다.
    • 인증한 후에 서버 투 서버로 인증 확인한다.
    • 리소스가 제한된 환경에서 직접적으로 로그인 후 토큰을 발급한다.
    • 유저의 계정을 받고 클라이언트가 요청하여 토큰 발급 및 안전한 환경에서만 사용할 수 있다.
    • 직접적 api 호출로 토큰 발급한다.
  • 현재 가장 널리 사용하는 인가 프로토콜과 버전이다.

2.1 인가 프레임워크

  • 디바이스 인증 플로우 : 다른 디바이스를 통해서 인증 절차 밟음
  • Pkce : 해시의 값과 원문값 함께 전달
  • BCP : 리프레쉬 토큰이 구 토큰이 되어 새로운 토큰 발급하는 형태

--
OpenID Connect와 GNAP도 설명해주셨지만, 맨 뒤 여분 자석에 앉아서 폰으로 메모하느라 뒷 내용을 적지 못했다. ㅠㅠ

15:00 | track 2 | 클린 아키텍처 애매한 부분 정해 드립니다.

소프트웨어 아키텍처의 중요성

  • 소프트웨어가 제공하는 가치는 기능과 구조다.
  • 클린 아키텍처 저자인 엉클 밥은 구조에 더 가치를 두고 있다.

소프트웨어 아키텍처 : 구조

  • 기능은 구조에 의지하고 있으므로 구조 안에 기능이 있다고 생각한다.
  • 엉클 밥은 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 것이 좋은 아키텍처라 생각한다.
  • 구조가 엉망인 것보다는 기능이 부족한 상태가 더 안정적이고, 구조가 안정적이면 기능 개선이 쉬워 개선 비용이 적게 든다.
    유지보수
  • 목적 : 컴퓨터에게 원하는 일을 더 정확하고(버그 수정) / 더 빠르고(성능 개선) / 더 많이(기능 추가) 시키기 위한 것이다.

아키텍처 패턴

  1. 계층형 아키텍처
    • 특징 : 전통적인 수평적 계층화 (웹 -> 도메인 -> 영속성)
    • 장점 : 구조가 단순해 처음 시작할 때 적합하고 보편적이라 모두에게 익숙한 구조다.
    • 단점 : 영속성부터 쌓아 올리므로 데이터베이스 주도 설계를 유도한다.
  2. 클린 아키텍처
    - 특징 : 도메인 주도 설계 (의존성 역전 이용)
    - 장점 : 규칙이 단순하고 도메인이 세부 사항에 의존하지 않는다.
    - 단점 : 패키지 구조가 복잡하고 익숙하지 않아 처음 접근하기 어렵다.

    출처 : http://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

클린 아키텍처란?

  • 여러 아키텍처를 하나로 통합한 시도다.
  • 헥사고날 아키텍처 / BCE / DCI
    • 공통 목표 : 관심사 분리
    • 공통 핵심 규칙 : 의존성 방향은 안쪽인 고수준으로 향한다.
  • 핵심
    • 중요도에 따라 계층을 나눈다.
    • 의존성의 방향은 항상 안쪽인 고수준을 향한다.
    • 다형성을 이용하여 의존성은 어디서든 역전이 가능한다.

클린 아키텍처 학습 방법

  1. 만들면서 배우는 클린 아키텍처 (쿡북)
    • 아키텍처 실천서로 단정적 말투의 책이다.
    • 헥사고날 아키텍처에 대해 다루고 소스 코드 실습이 가능하다.
  2. 클린 아키텍처 (바이블)
    • 다이어그램 하나로 이루어져 있어 처음 접하기에 어렵고 이론 위주다.

설계 및 코드 조직화 접근법

  1. 계층 기반 패키지
    • 특징 : 기술적인 관점에서 해당코드가 하는 일을 기반하여 그 코드를 계층으로 분할하는 방식이다.
    • 장점 : 엄청난 복잡함을 겪지 않고 무언가를 동작시켜주는 아주 빠른 방법이다.
    • 단점 : 업무 도메인에 대해 아무것도 말해주지 않는다.
  2. 기능 기반 패키지
    • 특징 : 서로 연관된 기능 또는 도메인 개념에 따라 수직의 얇은 조각으로 코드를 나누는 방식이다.
    • 장점 : 코드의 상위 수준 구조가 업무 도메인에 대해 무언가를 알려준다.
  3. 포트와 어댑터 (헥사고날)
    • 특징 : 업무 도메인, 프레임워크나 데이터베이스 같은 기술적 세부구현과 독립적이며 분리된 아키텍처를 만들기 위한 구조다.
    • 장점 : 도메인이 다른 세부 사항에 의존하지 않고 수직, 수평형 계층 구조의 장점을 모두 가졌다.

아키텍처 판단 기준

  1. 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력 최소화에 유리한가?
  2. 소스 코드 의존성이 안쪽인 고수준으로 정책이 향하고 있는가?
  3. 세부 사항이 변경되어도 도메인 변경이 없는가?
  4. 테스트하기 쉬운가?
  5. 각각의 아키텍처 원칙을 잘 지키고 있는가?
  • 소규모 프로젝트 진행 시 사용하지 않는 게 좋다.
  • 모든 사람의 동의하에 아키텍처를 적용해야 한다.
  • 학습 하기 위한 거라면 당연히 적용 가능!!

16:00 ~ | track 2 | Spring Cloud 기반 MSA 환경을 쿠버네티스로 전환하기

VM 환경의 Spring Cloud 컨테이너 기반 MSA를 쿠버네티스로 전환한 과정을 소개해주셨다. 아직 쿠버네티스가 생소한 나는 발표를 이해하기에도 벅차서 메모하지 못했다. ㅠㅠ

17:00 ~ | track 2 | DDD 뭣이 중헌디?

  • DDD는 전략적 설계가 중요하다. 전술적 설계는 풍부한 도메인 영역을 해결하기 위한 것이라 모든 것을 해결할 수 없다.
  • DDD와 MSA의 합으로 시너지를 낼 수 있지만 무조건적으로 묶어서는 안된다.

도메인

  • 비즈니스 도메인(현실 세계의 활동 영역), 문제 도메인(일부 영역을 소프트웨어로 해결하고자하는 도메인)
  • 비즈니스 도메인과 문제 도메인이 같을 수 있다.
  • 예) 인터넷 예매 -> 예매 / 도면 / 상품 / 회원
  • 하위 도메인을 핵심 / 지원 / 일반 도메인으로 식별한다.
  1. 문제 공간을 하위 도메인으로 나누기
  2. 하위 도메인을 핵심 / 일반 / 지원 유형으로 식별한다.

브라운 필드 전략적 설계

  • 이미 구축된 프로젝트에 DDD 적용하는 경우 (초기부터 적용하는 건 그린 필드)
  • 유용한 도구
    • 사용 사례 분석
    • 이벤트 스토밍
    • 비즈니스 모델 분석
    • 지식 탐구와 커뮤니케이션

모델 무결성

  • 모델에 따라 컨텍스트 나누기
  • Bounded Context에 하위 도메인이 있을 수 있다.
  • 핵심 도메인 및 컨텍스트 별 전술을 선정해야 한다. (CRUD / Model-Driven)

후기

3개월차 개발자라 이런 행사를 참가해본 경험이 없다. 꼭 IT 분야가 아니더라도 강연이나 행사에 많이 참가하고 싶어서 이 행사에 꼭 가고 싶었던 거 같다.
NHN Forward는 7개의 트랙에서 다양한 주제로 강연을 진행하고 있다. 아직 기술에 대해 잘 몰라 내가 들었던 6개의 세션 중 메모하면서 이해할 수 있는 세션은 3개밖에 없었다. 그래서 다음에 강연을 들을 수 있는 기회가 생긴다면, 미리 내가 들을 강연을 정해놓고 (트랙이 여러 개일 경우!) 그 강연의 주제의 기본을 파악한 뒤에 강연을 들을 수 있도록 준비를 해야겠다고 생각했다. 쿠버네티스 강연은 2번이나 들었지만(리허설과 본 강연) 지금도 내용이 헷갈린다 🥲 그리고 세션 외에도 라운지 토크도 준비되어 있었는데, 이해하지 못한 내용을 꾸역꾸역 넣기 보다는 라운지 토크를 즐기러 가는 것도 하나의 방법이었을 거라 생각된다. 라운지 토크를 하나도 듣지 못해 아쉽다! 그리고 명찰에 자신의 회사 이름이 적혀있는데, 길 지나다니면 사람들의 시선이 명찰에 가있음을 느낀다... ㅎㅎ

 

발표자분들 모두 발표 준비를 하시느라 수고 많으셨습니다! 많은 사람들 앞에서 발표를 해야하는 것이 부담스러웠을텐데 용기내어 좋은 강연을 해주셔서 감사합니다. 덕분에 발표자분들의 경험을 공유받을 수 있고 많은 개념을 얻어갈 수 있었습니다!

 

처음 행사에 참가해본 아기가 주는 작은 팁은 부스 이벤트는 최대한 이른 시간에 참가하는 게 좋다. 부스에서 준비한 이벤트 상품은 한정적이기에 뒤늦게 가면 못 받을 수도 있어 NHN Forward일 경우 10시부터 부스 시작이지만, 9시 반 이전에도 하는 부스가 있었고(결국 참가하는 사람들이 많아 인원 제한) 키노트 끝난 후에 후다닥 참가하는 걸 추천한다!

 

https://forward.nhn.com/2022

 

 
반응형

댓글