JAVA/JAVA | Spring 학습기록

[221231] 유스콘 2022 웨비나 컨퍼런스 후기

kth990303 2022. 12. 31. 17:17
반응형

올해도 우아한형제들, NEXTSTEP에서 주관하고 유스방 제이슨이 운영하는 유스콘 2022 행사가 개최됐다!

작년에는 아무것도 모르는 상태에서 컨퍼런스에 참여했다면, 올해는 우아한테크코스 과정을 수료하고 지식이 좀 쌓인 상태에서 참여하는 것이라서 더더욱 많은 내용을 이해할 수 있으리라 생각된다. 또, 그만큼 기대되기도 한다 ㅎㅎ

 

유스콘 2022 행사에 대한 소개는 아래 링크를 참고하자.

https://frost-witch-afb.notion.site/YOUTHCON-22-a18e4511463a416e8befd99993355215

 

YOUTHCON'22

유쾌한 스프링방에서 탄생한 유스콘은 👨‍🎓 젊은 개발자와 👨‍🏫 선배 개발자가 함께 가치 있는 기술에 관한 정보와 경험을 공유하는 콘퍼런스입니다. 여기서 발표하는 사람들을 잘 기억

frost-witch-afb.notion.site

유스콘 2022 트랙 세션 소개

작년에 온라인으로만 진행됐었던 때와 달리, 올해는 온라인으로도 열리고 100명을 선정하여 오프라인으로도 진행된다!

오프라인 초청장!

다행히 나는 발표자 지인 버프(?)로 오프라인 초청장을 받을 수 있었다!

참고로 유스콘 발표자는 주변 지인에게 최대 1명까지 오프라인 초청장을 보낼 권리가 주어진다고 한다.

 

유스콘 특성 상, 우아한테크코스 크루들이 발표하는 세션이 많다.

그렇다보니 발표자들 일부가 아는 사람들이어서 더더욱 반갑고 기대되는 마음으로 참여할 수 있었다.

 

그럼 이제 유스콘 2022 후기를 작성해보도록 하겠다.

참고로 유스콘 2021을 들은 내 후기는 아래 링크에서 볼 수 있다.

https://kth990303.tistory.com/233

 

[211219] 유스콘 2021 웨비나 컨퍼런스를 듣고 왔다

우아한형제들, 인프랩, 넥스트스탭에서 주최한 유스콘 2021 웨비나를 듣고 왔다. 마침 어떻게 공부할지 고민이 많기도 했고, 웨비나 들은 경험이 많이 없기도 했으며, 스프링과 java 웨비나라서 한

kth990303.tistory.com


나는 아래와 같이 세션에 참여하였다.

빨간박스가 내가 참여한 세션 목록이다.

제한된 시간으로 어쩔 수 없이 위와 같이 참여하게 됐다.

파랑이랑 애쉬가 발표하는 `우아한테크코스 지원자 모두에게 프리코스 기회를 주기까지` 세션에도 참여하고 싶었으나, 우아한테크코스 과정에서 지원플랫폼 근로에 같이 참여했어서 어느 정도 익숙한 내용이라 생각됐다. 그래서 해당 시간대에는 트랙2 세션에 참여하기로 결정했다.

 

또, 이번에는 이직기 및 적응기 세션 대신 기술적인 내용들을 많이 얻어가는 데에 목표를 두었다. 그렇기 때문에 위와 같이 참여하기로 결정했다.

 

축사 및 각 세션들에 대한 후기를 작성해보겠다.

 

우선은 임시로 노션 링크를 첨부할 것이나, 이후에 수정 및 후기를 추가 예정이다.


축사

13시 45분에 기선님이 축사를 해주셨다!

이후에 우아한형제들, 우아한테크코스 관련 홍보 영상들이 쭉 올라왔던 것으로 기억한다.

 

`우아한테크코스 전후의 자신을 비교해본다면?` 영상도 나왔다. 영상으로 오랜만에 유세지, 디우 등 많은 크루들도 간접적으로 만날 수 있었다 ㅋㅋ


Introduce to Clean Architecture

클린 아키텍처란 무엇인지 소개해주는 세션.

발표 대상자가 경력 3년 이상이라고 적혀있어서 내가 이해할 수 있을지 걱정하면서 세션에 참여했다. 그리고 그 결과는? 첫 세션부터 상당히 만족스러웠다!

 

최근 공부했던 DDD START! 책이랑, 요즘 읽고 있는 에릭 에반스의 도메인 주도 설계 내용이랑 유사한 부분이 꽤 있어서 많은 공감이 됐다. 프레임워크, DB 관련 세부사항에 집중하기보단 도메인 모델에 대한 이해도가 매우 중요하다는 점. 도메인 로직을 도메인이 아닌 서비스에 넣는 것을 주의하기. 불필요한 오버엔지니어링 주의하기 등등.

 

다만, 내가 아직 신입 개발자라서 일부 공감하지 못한 부분들도 있다.

어서 경험을 통해 많이 성장해야겠다고 느낀 세션이었다 ㅎㅎ

 

개인적으로 정리한 요약본은 아래 링크로 들어가면 된다.

https://clean-nutria-44b.notion.site/Introduce-to-Clean-Architecture-72a5bf8fd9284d32b39e566bf99f2906

 

Introduce to Clean Architecture

대상자: 실무 경험이 3년 이상 있는 분들

clean-nutria-44b.notion.site


Java 17 vs Kotlin 1.7

우아한테크코스 4기 로마, 페퍼가 발표한 세션이다!

Java 17과 Kotlin 1.7을 비교하면서 둘의 방향성과 문법 차이를 쭉 훑어주는 세션이었다.

Java와 Kotlin을 둘 다 써본 경험이 있어서 코틀린의 간결하다는 장점과 Java의 지속적인 업데이트에 많이 공감이 됐다.

 

Java 17은 특히 instanceof 키워드에 해당되는 pattern matching 기능 업데이트에 집중하고 있다는 점이 느껴졌다. instanceof를 남용하면 코드가 좀 더러워질 수 있게 되는데, 이 점이 앞으로 어떻게 될지도 궁금하다. 그 외에 text block도 상당히 편해보였다. native query문을 작성할 때 text block을 이용한다면 가독성이 상당히 올라가지 않을까?

 

Kotlin 1.7은 지원플랫폼 근로를 통해 많이 익혀봤기 때문에 다행히 대부분은 아는 내용이었다. 

 

개인적으로 정리한 요약본은 아래 링크로 들어가면 된다.

https://clean-nutria-44b.notion.site/Java-17-vs-Kotlin-1-7-6bc778391c07465bae3f08e792085a5a

 

Java 17 vs Kotlin 1.7

Spring 6, spring boot 3.0 기본 스펙인 Java 17

clean-nutria-44b.notion.site


Unit Test Puzzler: 퀴즈로 알아보는 단위 테스트

우아한테크코스 4기 베루스와 오찌가 발표한 유닛 테스트 세션이다.

제시하는 유닛테스트 코드에 어떤 문제점이 있는지 퀴즈를 통해 능동적인 참여를 이끌어내고, 그와 함께 코드를 개선해나가는 과정을 거치는 세션이다. 개인적으로 이 세션도 정말 많이 배워갈 수 있는 좋은 세션이라 생각한다. 

 

유닛 테스트는 매번 실행할 때마다 동일한 결과를 출력해야 한다. 테스트 내에 if문을 통해 결과를 두 개 이상 반환하고 검증하거나, 두 가지 이상의 결과를 검증하면 안된다. 또, 유닛테스트는 테스트 간의 결합성을 낮추고 그 자체만 봐서 이해가능하도록 작성하는 것이 좋다. 자세한 내용이 궁금하다면 아래에 첨부할 요약본을 참고하자.

 

우아한테크코스 과정을 거쳤기 때문에 대부분은 아는 내용임에도 불구하고, 베루스랑 오찌가 질문할 때 대답을 거의 못했다. 은근 노션에 정리하고 발표자들 사진찍느라 타이밍을 놓쳤고, 손들기 무섭기도 하고 그랬다ㅋㅋㅋ 은근 눈치보이던데 대답 열심히 잘해준 크루들 대단하다.

 

개인적으로 정리한 요약본은 아래 링크로 들어가면 된다.

https://clean-nutria-44b.notion.site/Unit-Test-Puzzler-27af3c5d5f354067b84d124878d54b54

 

Unit Test Puzzler: 퀴즈로 알아보는 단위 테스트

간단한 퀴즈를 통해 좋은 단위테스트란 무엇인가에 대해 알아보자

clean-nutria-44b.notion.site


토비의 스프링 같이 읽기

대상은 토비의 스프링을 다 읽지 못한 개발자이다.

개인적으로는 토비의 스프링을 아예 모르거나, 읽다가 포기한 개발자를 위해 만든 세션이라 생각된다.

 

가장 공감되는 멘트는 아래와 같았다.

스프링을 배우기 위해 읽는 책인데, 스프링을 모르면 뭘 전달하는지 어려울 수 있다.

그렇다.

이 책은 스프링을 배우기 위해 읽는 책이다.

그렇지만 스프링 외에 DAO, test code 등 다양한 개념들이 나오기 때문에 스프링을 모르면 뭘 전달하는 것인지 어려울 수 있다. 우아한테크코스에서도 레벨1~2 기간동안 토비의 스프링은 금서(?)에 해당됐다. 읽으면 오히려 주화입마에 빠질 수 있다고.

 

이와 유사하게 우아한테크코스 초반기에 금서에 해당된 책이 몇몇 있다. 토비의 스프링, 디자인 패턴 관련 어려운 책 (객체지향과 디자인패턴 책 제외)은 금서에 해당됐다. 혹시 읽어볼 주니어(0년차 및 대학생 저학년)가 있다면 주의하자.

 

추가로, 발표자님께서 토비의 스프링 스터디를 통해 이일민(토비)님이 강조해주신 키워드가 있다고 얘기해주셨다.

 

DI, 예외처리, 테스트, 코틀린.

 

DI를 이용하기 위해서 인터페이스를 전달해주는 것을 강조하셨다. 인터페이스를 만드는 번거로움 < 테스트 코드, 로직 변경의 유연함에서 느껴지는 편리함이라 한다. 극단적으로는 다른 사람들에게 설득할 일이 생겼다면 인터페이스를 전달해야된다고 이유없이 우겨도 된다고 하셨다고 한다ㅋㅋㅋ 나도 거의 공감되는 부분이 많았다.

 

예외처리의 디테일을 매우 강조하셨다고 한다. 예외처리 대충한 코드를 보면 서류평가 시에 감점할 정도라고. 

List<Member> findById(final Long id) throws Exception;

위와 같은 인터페이스 메서드가 있을 때, throws Exception으로 예외를 처리하지 않고 단순히 넘겨버리는 코드가 있다고 하자.

이렇게 되면 의미있는 예외를 던지지 못하게 되고 어떤 예외가 발생할지 예측하기 어렵다. 이러한 코드는 상당히 문제가 된다.

 

테스트 코드의 중요성은 매우 높다.

위에서도 말했지만, 인간은 완벽한 동물이 아니기 때문에 리팩터링하는 과정에서 실수로 로직이 바뀔 수 있다. 이 때 이를 쉽게 알아차릴 수 있는 방법이 테스트이다. 그렇기 때문에 개인적으로도 테스트 코드 작성은 매우 중요하다고 생각된다.

 

토비님은 코프링(코틀린 + 스프링)으로 꼭 안넘어가도 괜찮다고 하셨다.

채용공고에 코틀린이 자격요건으로 꽤나 있긴 해서 조급한 마음도 이해는 간다. 하지만 자바를 잘하면 코틀린을 잘할 수 있다고 조급해하지 마라고 하셨다고 한다.

또한, 코틀린은 JPA와 호환성이 많이 안맞는 부분이 있다. all open 플러그인 의존성 등. 사실 이 부분은 크게 공감하지 못했었다. 근데 나중에 세션이 끝나고 회식할 때에 제이슨이 이 부분 바로 공감하게 해주겠다고 이 링크를 공유해주셨다ㅋㅋㅋ 한번 읽어보도록 하자.

https://spoqa.github.io/2022/08/16/kotlin-jpa-entity.html

 

스포카에서 Kotlin으로 JPA Entity를 정의하는 방법

도도카트 서비스를 개발할 때 JPA를 사용하면서 좀더 Entity를 잘 정의하는 방법에 대한 고민거리를 소개합니다.

spoqa.github.io

 

꽤나 공감가는 부분들이 많았어서 재미있게 참여한 세션이었다.

 

개인적으로 정리한 요약본은 아래 링크로 들어가면 된다.

https://clean-nutria-44b.notion.site/16e2857cb68a4c4187e3c31f14dbe54c

 

토비의 스프링 같이 읽기

대상: 토비의 스프링을 모두 읽지 않은 사람

clean-nutria-44b.notion.site


Flyway로 DB 형상 관리 시작하기

flyway에 대한 hands-on 세션이다.

우아한테크코스 프로젝트에서 flyway를 사용해봤기 때문에 flyway에 대한 이해도 및 경험은 충분했지만 혹시나 내가 놓치거나 이해하지 못한 부분이 있을까 해서 한번 세션에 참여해보았다. 

 

해당 세션은 아래 프로젝트를 클론해서 직접 체험할 수 있다.

상당히 README 파일에 정리가 잘 돼있어서 유용할 듯하다.

https://github.com/devcsb/flyway

 

GitHub - devcsb/flyway: [2022년 유스콘 - flyway로 DB 형상관리 시작하기] Hands On Lab Session 진행을 위한 예

[2022년 유스콘 - flyway로 DB 형상관리 시작하기] Hands On Lab Session 진행을 위한 예제 프로젝트입니다. - GitHub - devcsb/flyway: [2022년 유스콘 - flyway로 DB 형상관리 시작하기] Hands On Lab Session 진행을 위한

github.com

나중에 따로 build.gradle은 다시 읽어볼 예정.

플라이웨이, 스프링 버전이 높아지면서 의존성이 꽤나 다른 부분들이 많아져서 쭉 살펴볼 예정이다.

 

다행히 대부분 다 아는 내용이었지만, V 옵션이 아닌 R 옵션으로 마이그레이션 파일을 작성해보는 경험은 처음이었어서 이번 세션에서 해당 부분을 배울 수 있었다.

 

개인적으로 정리한 요약본은 아래 링크로 들어가면 된다.

https://clean-nutria-44b.notion.site/Flyway-DB-1a925777084946c0a0750e4402ec29bb

 

Flyway로 DB 형상 관리 시작하기

대상: DB 스키마 변경을 수작업으로 하고 있는 개발자

clean-nutria-44b.notion.site


유스콘 2021에선 경험도, 개발 인맥도 상당히 부족했어서 절반 정도만 이해했으며 물어볼 사람들도 없었다.

하지만 유스콘 2022는 우아한테크코스에서의 경험 덕분에 지식도, 개발 인맥도 어느 정도 생긴 상태에서 세션에 참여할 수 있었다. 또, 경험이 생긴 만큼 내용들도 꽤나 공감하면서, 그리고 앞으로의 실무 경험에 기대감을 부풀리면서 세션에 참여할 수 있었다! 확실히 아는 만큼 보인다는 말이 맞긴 한듯.

 

여담으로 유스방의 FL님을 회식 때 실제로 만나뵐 수 있어서 영광이었다!

주로 나는 유스 오픈채팅방에 참여는 거의 안하고 눈팅 위주로 하는 편이긴 하지만, 네임드 분들은 나만의 내적 친밀감 생겨서(ㅋㅋㅋ) 꼭 한 번 뵙고 싶었는데 영광이었다. 우테코 오찌 형도 네임드에 해당된다. 그리고 제이슨은 여기서 무려 부방장 직책을 맡고 계시며 엄청난 킹갓네임드에 해당된다.

 

작년만 해도, 올해의 나는 이정도로 성장할 줄 몰랐었다. 유스콘 세션에서 공감하고 이해하고 또 어떤 부분은 궁금해하는 나를 통해 2022년 마지막날의 나는 2021년 마지막날의 나보다 훨씬 많은 성장을 했다는 게 느껴지기도 했다.

 

유스콘 2023때는 더 성장한 상태에서 세션에 참여할 수 있도록 열심히 공부해야겠다 :)

반응형