2023년 인프콘 후기 - #5 스프링과 함께 더 나은 개발자 되기

Joshua_Kim·2023년 8월 17일
22

2023년 인프콘 회고

목록 보기
6/7

🌱 서론

  • 📣 스피커 : 이일민 (Epril, 토비)
  • 세션을 선택한 이유
    - 스프링의 대부, 토비님이 말하는 스프링은 어떨지 궁금했다. 인프런 강의를 통해 들었던 토비님의 스프링에 대한 깊이를 이번 인프콘에서도 느껴보고 싶었다.

✍🏻 세션 정리

0. 들어가며,

내가 사용하는 기술이 나의 성장을 도울 수 있을까?

토비님은 세션에서 하나의 질문을 우리에게 던지시면서 시작 하셨다.

한번도 생각도, 접근도 해보지 않았던 질문.
기술과 성장의 관계성에 대한 질문이었다.

나 또한 토비님과 마찬가지로 스프링을 사용하는 개발자다.
과연 스프링을 통해서 내가 성장한다고 말할 수 있을까?

나를 비롯한 대부분의 사람들은 '기술'의 '성장'을 이야기하면,
기술에 대한 '공부'나 '사용' 을 생각한다.

하지만, 토비님이 세션을 통해 말씀하시고자 하는 성장은 그런 의미가 아니었다.
스프링은 '개발자의 성장에 도움이 되는 특성' 을 가지고 있다.

(물론, 그 어떠한 기술을 통해서도 성장할 수 있다.)


1. 실전 사용.

기술이라는 것은 단순히 사용하기만 해서는 성장하기 힘들다.
'실전' 에서 사용하지 않으면 성장은 더디거나 할 수 없다.
충분히 공부하고 나서 실전에 사용하겠다는 것 또한 말이 안된다.

개발은 실전이고, '성장' 역시 실전이다.

"개발한다, 무슨 일이 있어도 개발 해낸다."
토비님이 처음으로 스프링으로 개발을 해야겠다고 마음을 먹고 엔터프라이즈 실전 레벨에서 사용하셨을 때 가지셨던 마음..

'무슨 일이 있어도' 라는 전제가 붙고 '해낸다' 로 결론이 지어지면,
그 어떤 상황에서도 성장은 불가피한 일이 된다.


2. 질문과 탐구.

🍡 스프링은 단순한 기술이 아니다.

어떤 공식에 맞춰서,
혹은 누가 정해놓은 규칙에 맞춰서 따라 쓰면 어플리케이션이 만들어지는 무언가가 아니다.

물론, 그렇게 하더라도 결과는 얻을 수 있다.
하지만 그것은 기술을 통해 개발하는 것이 아니라, 상품을 사용하는 것에 지나지 않는다.

💡 질문과 탐구를 놓치지 말아야 한다.

  • 내가 사용하는 기술은 왜 이렇게 만들어 졌는가?
  • 나는 이 기술을 사용해서 왜 이렇게 설계하고 코드를 작성하는가?
  • 장단점은 무엇인가?
  • 대안점은 있는가?
  • 스프링이 강조하는 IoC / DI 는 과연 무엇인가?
  • IoC / DI 는 지금 내가 작성하고 있는 코드에 어떤 도움을 주고 있는가?

끊임없이 궁금해 하자.
끊임없이 답을 찾자.
답을 찾았다면 그 답을 의심하고 또 다른 더 좋은 답을 찾기 위해 노력하자.


📖 스프링의 목표와 철학

스프링에 대한 설명은 구글링하면 너무나 방대하게 많이 나온다.
그러나 많은 개발자들은 스프링의 목표와 철학에 대해 자신의 언어로 설명하는 것 을 어려워한다.
면접에서는 외워서 이야기 할 수 있겠지만, 그 이상은 어렵다.

대표적인 키워드들은 다음과 같다.

IoC, DI, AOP, 객체지향, POJO, 등등등..

토비님의 스프링강의에서도 느꼈지만,
스프링은 엔터티, 컨트롤러, 서비스, 레포지토리를 찍어내는 도구가 아니다. 🫠
스프링이 설계된 의도와, 그 의도를 뒷받침하는 철학을 이해하면 내가 사용하고 있는 기술의 정교함이 보인다.

키보드를 쳐서 작성하는 코드에만 집중하는 것이 아니라,
그 속에 있는 원리와 구조를 이해하면 더 깊고 단단한 개발자로 성장할 수 있다.


3. 훈련과 개선

🏋🏻 훈련을 위한 반복

토비님은 스프링의 대표 예제인 PetClinic 을 스프링 버전이 업데이트 되거나 변동이 있을 때 꾸준히 반복을 하신다고 한다.
스프링을 배우고 알았으면 그걸로 멈추는 것이 아니라, 반복을 통해 익숙해 지는 것이 중요하다. (토비님도 지금까지 하시는데!!)

좋은 훈련 방법

  • 클론 코딩한 프로젝트에 새로운 기능 추가 및 설게 구조를 변경해보려는 시도를 하자.
  • 실무에서 사용하지 못했던 기술을 도입해보자.
  • 실제로 생활에서 사용될 어플리케이션이라고 생각하고 개발하자.
  • 테스트코드를 무조건 만들자.

코딩 훈련은 꾸준히 해야한다.
단순히 듣고 따라 치는 것을 넘어서 스스로 목표와 의도를 가지고 개발하는 시간이 필요하다.

스스로의 목표와 의도를 가지고 개발을 하게되면 선택 을 하게되고,
그 선택에서는 고민 이 필요하며,
그 고민을 통한 결정을 통해 만들어진 결과 로 인해 성장할 수 있다.


4. 공유와 논쟁

공유와 논쟁, 성장의 지금길

📖 정리와 정의를 통한 성장

정리된 글을 작성하거나 발표를 하는 것을 통해 폭발적인 성장이 가능하다.

공유하고 발표를 하기 위해서는 '정리' 가 필요하다.

정리를 통한 성장

  • 효율적으로 자신만의 방법을 통해 정리하는 것이 중요하다.
  • 단순 카테고리식의 정리는 성장에 도움이 되지 않는다.
  • 자신의 언어로 표현하고 정리하는 것이 중요하다.

정의를 내리는 것을 통한 성장

  • 나만의 정의를 내리는 것이 중요하다.
  • 다른 사람의 설명을 반복해서 외우는 것이 아니라, 자신의 정리가 뒷받침된 한문장의 정의가 필요하다.
  • 내가 사용하고 있는 기술과 방법에 대한 나만의 정의가 필요하다.

정리와 정의를 잘해 놓았다면,
해당 내용을 공유하자.
그리고, 공유된 것에 대해 사람들과 논쟁하자.

논쟁은 때로는 불편하기도 하고, 상처가 될 수 있으나
그러한 논쟁을 통해 개발자는 성장한다. 🔥

스프링은 많은 논쟁속에서 만들어진 기술이다.


🏃🏽‍♂️ 컴포트 존에서 나오기

안락한 환경에 있으면 그곳이 너무 편해서 성장이 부담으로 느껴질 때가 온다.
성장하고 싶다면 나오라.

성장하고 싶은 개발자는 안락한 곳에 있으면 안된다.
특히나 주니어는 그러면 안된다.


🙏🏻 개인 소감

  • 토비님이 스프링으로 개발을 시작하신지 벌써 20년이 지났다고 한다.
    그럼에도 불구하고 꾸준히 스프링을 공부하시고 학습하시는 모습을 통해 진정한 시니어의 품격이 느껴졌다.
    스프링을 통해 성장하시는 것을 넘어, 스프링을 진심으로 사랑하시는 것 같은 토비님의 스프링 세션을 통해 내가 스프링 개발자임에 자부심이 느껴졌고, 더욱 스프링에 대해 깊이 공부를 해야겠다는 다짐을 했다.
profile
인문학 하는 개발자 💻

4개의 댓글

comment-user-thumbnail
2023년 8월 23일

잘 보고 갑니당 ^^

1개의 답글
comment-user-thumbnail
2023년 8월 25일

와.. 토비님이 발표하시는 인프콘이라니.. 참석하신거 진짜 부럽네요 정리해주신 글 잘 읽었습니다~!

1개의 답글