스프링부트로 배우는 웹프로그래밍

스프링부트로 배우는 웹프로그래밍

배우러가기

스프링부트 (https://spring.io/projects/spring-boot) 프로젝트는 스프링 프레임워크를 더 빠르고 쉽게 사용할 수 있게 도와주는 프로젝트입니다.

이 같은 스프링부트가 세상에 나온 시간이 꽤 지났음에도 불구하고 우리 나라는 아직도 많은 회사와 학원에서 Spring Legacy Project 를 이용한 개발 및 교육을 하고 있습니다.

그러나 이제 새로운 버전의 STS4나 이클립스 애드온 STS에서는 Legacy Project 는 지원하지 않습니다.

스프링부트를 이제 익혀야만 하는 시간이 된 것입니다.

본 강좌는 여러분들이 스프링부트의 핵심적인 기능을 쉽게 이해하고 빠르게 사용할 수 있는 방법을 제공합니다.
웹 애플리케이션을 만드는데 필요한 기술들을 차례대로 설명합니다.
맛만 보는 예제가 아니라 필요한 부분은 더 깊은 곳까지 실습합니다.
기존에 학원에서 배웠던 것들과의 연계를 위하여 JSP, Oracle, MyBatis 를 집중적으로 다룹니다. 또한 빌드 도구로 Maven 보다는 Gradle 을 사용합니다.
이 강좌를 완강하게 되면 스프링부트를 이용해 웹 애플리케이션을 만드는 것이 어렵지 않을 것입니다.

1. 배우면 할 수 있는 것들

  • 스프링부트의 핵심 원리를 이해할 수 있습니다.
  • 스프링부트가 제공하는 주요 기능을 사용할 수 있습니다.
  • 스프링부트를 사용하여 웹 애플리케이션을 개발할 수 있습니다.

2. 수강 대상

  • 스프링부트를 쉽고 빠르게 배우고 싶으신 분
  • JSP / Servlet 과정을 배우고 Spring 을 배워보고 싶으신 분
  • Spring Legacy Project 보다는 Spring Starter Project 로 프로젝트를 진행하고 싶으신 분

3. 선수 지식

  • 자바 프로그래밍 경험이 있다고 가정합니다.
  • JSP / Servlet 경험이 있다고 가정합니다.
  • JDK, 빌드툴, IDE 설치에 관한 내용을 다루지 않습니다.
  • 본 강좌는 JDK 1.8, Gradle, Eclipse + STS Addon or STS4 를 사용해 만들었습니다.
  • ++ JDK 1.8
  • ++ Gradle (Buildship 3.x)
  • ++ STS4
  • ++ Eclipse 2019-03 + Spring Tools 4 (4.2.2)

배우러가기


점들이 모여 나중에 큰 그림이 된다는 말을 믿어요 – 창천향로 이동욱 2편

점들이 모여 나중에 큰 그림이 된다는 말을 믿어요 – 창천향로 이동욱 2편

Today We Learned #04
인프런이 만난 사람 – 개발자에게 듣다

점들이 모여 나중에 큰 그림이 된다는 말을 믿어요

– 창천향로 이동욱 2편

Q. 인프런 첫 강의, 왜 IntelliJ 인가요?

일단 IntelliJ 가 유튜브에서도 그렇고 한글로 된 자료가 많이 없다는 게 컸어요. 그리고 유데미에 비슷한 강의가 있는데 22만 원이거든요. 거기는 할인을 90프로씩 때리니까 실제로 들을 땐 2만 2천 원이지만.

스프링*은 한글 자료나 유튜브, 오프라인 강의도 많아요. 그리고 자바 스프링 인프런 무료 강의가 있더라고요. 그래서 무료 강의가 있으면 유료강의는 잘 안되겠다 싶었어요.
*스프링 프레임워크: 자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크

Java 개발툴은 이클립스에서 점점 Intellij로 넘어가고 있어요. 그리고 운영하는 커뮤니티도 관련이 있으니 홍보하기도 편했어요.


Intellij는 외국 사이트에서 평균적으로 3-4시간이면 만족도가 높았어요. 이 정도 퀄리티면 사람들이 만족하는구나, 첫 시작으로 이 정도면 괜찮겠다 싶었어요. 그런데 실제로 찍어보니 오래 걸렸어요.

편집 후 나온 분량은 3시간이었어요. 찍으면서 공짜로 풀까? 고민도 했어요. 돈 받겠다고 하기가 부끄러웠어요. 퀄리티도 자신할 수 없었어요. 편집 기술이 없어서 재채기 같은 잡음들만 잘라냈거든요. 사람들이 돈을 낼까라는 생각도 들고. 주변에서 이거 왜 유료로 올렸냐고 할거 같기도 하고, 별별 생각이 다 들었어요. 제작 진도는 느리고 퀄리티도 마음에 안 들다보니까.

하지만 공짜로 올려도 문제였어요. 왜냐면 그 다음부터 다른 분들이 인프런 같은데 강의를 안올릴 거 아니에요. 올려봤자 공짜면 누가 강의를 하겠어요.

예전에 굉장히 유명하신 분과 만나 스터디를 하고 밥을 먹은 적이 있어요. 그때 그분 말씀이 모회사에서 하는 150-200만원짜리 강의가 비싸다고 생각 안 한다고. 본인이었다면 4-500만 원이라도 자기보다 잘하는 사람의 노하우가 있다면 얻어올 거라고 얘기하시더라고요.

우리나라는 입시교육은 비싼데 자기 경력에 관련된 교육은 저렴하게 책정되어 있다고. 그래서 공짜로 하지 않을 거라고. 그 이야기가 생각이 났어요.

무얼 하든 수익이 나야 잘하는 분들이 강의를 올리겠구나, 사실 재야의 고수들이 있잖아요. 숨어있는 고수분들이 돈이 되는 걸 알아야 강의를 만들텐데 싶기도 하고요.

무료라면 그런 분들이 자기 시간내서 만들지 않을 테니까. 그래서 인프런의 모 지식공유자분이 4천만 원, 5천만 원 벌어가시는 게 사람들이 이거 괜찮겠다, 생각하게 만드는 좋은 사례인 것 같아요.

Q. 비전공자였어요. 어떤 지점에서 프로그래밍에 매력을 느끼셨나요?  

전기전자공학과였어요. 이쪽은 프로그래밍은 거의 안 하고 전자회로나 통신공학에 집중했어요. 그런데 제가 색약이라 적색이랑 녹색을 구분을 못해요. 전기전자공학에서 저항이라는 게 있어서 띠 색깔로 수치를 측정하고 회로를 만들어야 하는데 색깔 구분을 못하니 제대로 꽂을 수가 없었어요.

구별이 안되니까 몇 번 태워먹기도 하고 전공이 크게 마음에 들지도 않았어요. 그러다 3학년 때 소프트웨어공학 수업을 들었어요. 성적은 별로였는데 이건 노트북만 있으면 할 수 있겠다 싶어서 고민을 많이 했어요.

여기로 가야하나 확신이 없었으니까. 그땐 컴퓨터 공학 수업을 들으면 밑밥 깔아주는 역할이었거든요. 다 전공자이고 전 아무것도 모르는 상태였으니까요.

중소기업도 못 들어가면 어떻게 하지? 비전공, 지방대에 학점도 별로인 사람을 어느 회사에서 뽑지? 생각했어요. 그러다 4학년 1학기 끝나고 휴학하고 서울로 갔어요. 그리고 10월부터 2월까지 국비교육을 들으면서 전자공학보다는 맞는다고 느꼈어요. 당시에 전자공학을 공부하기로 마음먹고 장학금도 한번 받았지만 이 이상은 못하겠다 싶었거든요.

4개월 중 마지막 두 달은 학원에서 잤어요. 명절에도 당일 빼고는 안 내려갔어요. 잘 데가 없으니까 책상에서 맨날 잤어요. 그래서 몸이 너무 안 좋아졌어요. 집중력도 떨어지고. 그래서 이럼 안되겠다 싶다가도 밤 2시에 자고 아침 7시에 일어나서 학원 화장실에서 씻는 생활을 두 달 동안 했는데요. 그렇게 해도 이 일을 계속할 수 있겠다 싶었어요.

그때 코딩 공부하고 같이 학원 다닌 사람 중에 스타트업을 만든 분이 있어요. 거기 일을 도와주면서 공부했어요. 책상이랑 전기도 있고 밥도 주니까 일하고 공부하고, 그렇게 3달 정도를 보내면서 개인 포트폴리오를 만들었어요.

그리고 학교로 돌아가 다른 학생들은 졸업작품으로 로봇을 만드는데 저 혼자 웹사이트를 만들어서 전시했어요. 다행히 교수님이 받아주셔서 졸업하고 1년 뒤에 취업을 했어요. 그때부터 시작이었죠.

Q. 현재 관심 있는 기술 스택은 무엇인가요? 

NOSQL 에 조금씩 관심을 두고 있어요. 지금 팀에서는 RDB를 쓰고 있지만 한계점에 도달했어요.

매월 메인 데이터가 수천만건이 쌓이는데요. 내부 상세 데이터로 치면 더 많겠죠. 몇달이면 1억 건씩 쌓여요. 그래서 기존 데이터베이스로는 한계가 있어요. RDB를 확장해서 쓸 건지 아니면 NOSQL로 갈 건지 고민하는데, NOSQL이 좀 더 낫지 않을까 생각하고 있어요.

근데 그 기술을 회사에서 쓰진 않았어요. 회사 일정이나 개인 일정 때문에 밀리고 올해가 가기 전에 도입할 시기를 보려구요.

사실 선뜻 말하지 못해요. 본인이 쓰자고 해놓고 장애난걸 해결 못하면 안되잖아요. 느린 거랑 못고치는 건 큰 차이가 있잖아요.  이 기술은 잘하면 앞으로 문제가 해결되지만, 큰 문제가 생겼을 때 다루지 못할까 봐 무서워서 도입을 고민하고 있어요. 혼자 계속해봐야죠.

결국 내 서비스가 있어야 테스트해볼 수 있어서 개인 서비스를 만들고 싶었어요. NOSQL 공부도 하고, 얘를 어떻게 잘 쓸 수 있을까 궁리도 하고요. 자료가 많이 없더라고요. 튜토리얼은 많은데 깊은 지식은 아는 사람들끼리만 알고 찾기 어려워서 정보를 얻기가 힘들어요.


Q. 2019년에 세운 실현 가능한 목표가 있나요.

제가 갈대 같아서 마음이 바뀌는 일이 많아요. 길을 가다가도 옆길로 빠질때가 있잖아요. 물론 한길로 쭉 가도 좋지만 옆길로 빠져서 도움이 됐던 경우도 많거든요.

예전에는 여러 계획들을 잡았어요. 점들이 모여서 나중에 큰 그림이 된다는 말을 믿는 편이에요. 올해 상반기에는 책을 집필하기로 계약을 맺었어요.

열혈 시리즈에는 스프링이 없거든요. 전에 연락 온 출판사는 매크로처럼 메일이 왔었는데 이 출판사는 정성이 담긴 메일을 주셨어요. 그래서 한번 뵈었는데 같이 책을 냈으면 좋겠다는 열망이 강하셨어요. 2018년 10월에 계약했고 이번 상반기에는 꼭 써보려고요.

Q. 인프런에서 다음 강의를 만든다면요?

상반기에 책 집필이 끝나면 기효님 (캡틴판교)이랑 같이 강의를 찍을 예정이에요. 기효님이 프론트엔드를 하시고 제가 백엔드를 하잖아요.

큰 회사는 백엔드와 프론트엔드가 나눠져있잖아요. 대기업에서는 클라이언트랑 백엔드랑 완전히 나뉘는데 두 분야가 왜 나눠져있고 어떻게 같이 일하는지 궁금해할 것 같아요. 그래서 제가 스프링부트를 하고 기효님이 Vue.js를 맡아서 트위터 같은 서비스를 만드는데요. 백엔드와 프론트엔드가 어떻게 협업해서 두 개의 코드를 합치고 테스트하는지 이 사이클을 쭉 돌려보면 어떨까 생각해서 강의를 진행할 예정이에요.

Q. 어떤 개발자이고 싶으신가요. 

일일커밋을 2년 넘게 유지하고 있거든요? 계속해보고 싶어요. 30년 커밋이 있으면 재밌을 것 같아요. 제가 예전에 갑상선암에 걸렸었어요. 작년 3월에 수술해서 1주일간 입원했었거든요. 수술하면 못 움직이잖아요. 그래서 수술 전날 11시에 커밋하고 새벽 1시에 또 커밋하고 잤어요.

미리 커밋을 준비해놓고 버튼만 클릭하면 커밋이 되도록 준비해놨어요. 그렇게 입원해있는 동안에도 커밋을 했어요. 그걸 하고 나니 앞으로도 계속할수 있겠다 싶더라고요. 그래서 일일커밋 유지가 첫 번째 목표고요.

두 번째로 같이 일했던 회사 사람들이 모두 저를 인정해주면 좋겠어요. 다른 커뮤니티에서 인정해주는 것도 좋지만 같이 일은 하지 않았잖아요. 같이 일해본 사람들이 ‘저 사람 진짜 일 잘해’라고 얘기해주면 좋겠어요.

그리고 살짝 유명해졌으면 좋겠다? 하하병이라고 하는데요. 저는 스스로 유명한지 모르지만 주변 사람들이 ‘아! 저 사람이 그 사람이래’ 하는 거 있잖아요. (웃음)

블로그 시작할 때도 저 사람이 발표한다, 그럼 이름만으로 수십 명을 모을 수 있는 사람이 되고 싶단 생각을 했어요. 겸손함을 유지한 채 유명해지면 좋겠어요. 이유는 잘 모르겠어요.

Q. 부지런함의 원동력은 어디에서 오나요.

제가 부지런했으면 대학교 성적이 그렇게 개판이지는 않았을 거예요. 기본도 못했으니까. 게임을 좋아해요. 예전에 리니지할 때 하루에 15시간 정도 게임을 했는데 같은 몬스터만 잡았어요.

시간당 쎈 몬스터를 적게 잡을 때랑 약한 몬스터를 많이 잡을 때의 가성비를 따졌을 때 더 낫다고 생각해서 같은 것만 잡았어요. 15시간씩 한 달 동안 했었거든요. 그때 하나도 지루하지 않았어요.

액션 게임도 아니고, 지겨운 게임이거든요. 클릭만하고. 왜 그땐 같은 화면, 같은 캐릭터로 하루에 15시간씩 해도 안 질리고 재미있었지? 나중에 생각해보니 이상했어요.

눈에 보여서 그런 거 같아요. 몬스터를 잡아서 벌어들이는 돈이 아주 작더라도 경험치가 늘어나는 게 눈에 보이잖아요.

내가 성장하는 게 보이면 결국 지루해 하지 않고 계속할 수 있었던 것 같아요. 그럼 현실에서 어떻게 성장하는 걸 눈으로 볼 수 있을까? 묻는다면 깃헙에 일일커밋 그래프가 있어서 커밋한 걸 확인할 수 있게 해줘요. 제 입장에서는 그게 게임이라고 생각했어요. 경험치 바를 채우듯 이 칸을 채운다.

블로그 방문자 수도 수치잖아요. 이걸 어떻게 성장시키지, 컨텐츠를 많이 공유시키지 생각했어요. 어찌 보면 일종의 게임이니까. 어떻게든 눈에 보이는 지표를 만들려고 노력했어요. 지표가 있으면 덜 지루하거든요.

운동도 그냥 운동만 하면 재미없는데 인바디로 체지방 수치랑 몸무게가 줄어드는 게 보이면 더 열심히해요. 무얼 하든 꾸준히 하려면 지표가 있어야 한다고 생각해요. 그거 때문이지 않을까요.

Q. 번아웃이 오진 않나요. 온다면 어떻게 풀어내시나요?SI 다닐 땐 번아웃 많이 왔어요. SI를 떠나고 싶은데 맨날 야근시키고 집은 신림역인데 전산실이 분당 야탑에 있었어요. 그래서 여기 갔다 저기 갔다 했어요. 아무리 시간을 내려해도 어렵고, 체력은 계속 떨어지고 이러다 탈출못하는 건 아닌가? 계속 이렇게 야근하고 갑질당하다가 끝나나? 생각했어요.

탈출하고 나니 조금 덜한 거 같아요. 제가 원해서 탈출했고, 원하는 회사에 들어왔으니까 그래서 좀 덜해요. 그래도 전력 질주는 하지 않아요. 이 일은 일주일 전력질주해서 끝내는 졸업작품 같은 게 아니라 30년, 40년을 바라봐야 하잖아요.

무리해서 일찍 일어나고 밤에 늦게 자고, 하루에 4-5시간씩 자는 생활은 나이 먹으니 못하겠더라고요. 수면 시간은 7시간을 유지하고 그 안에서 못하면 못하는 대로, 만약 모자라다 싶으면 도시락 사 와서 점심시간에 모자란 부분을 채워요. 저녁 약속은 월화목금은 안 잡고 수요일만 잡아요.

그렇게 시간을 확보해요. 주변에는 하루에 5시간씩만 자면서 자기 서비스에 올인하는 분도, 개인 공부만 하는 분도 계시는데 그렇게 하면 탈진 비슷한 게 올 거 같아서 저는 80프로 정도만 하자고 생각해요. 그래서 번아웃은 아직 없어요.

불안할 때도 있어요. 자기만의 무언가를 이룬 분은 결국 잠과 시간을 아껴 몰입한 분들인 것 같아요. 무얼 이루려면 저렇게 해야 하나 생각했었거든요. 저는 일단 이렇게 해보고 만약 효과가 없다면 다르게 해보려고요. 지금은 테스트 단계에요.

Q. 개발자로서 가장 뿌듯했던 순간이 있나요? 

가장 뿌듯했던 순간은 잘 모르겠어요. (웃음) 소년만화의 주인공처럼 큰 이벤트를 계기로 각성한 게 아니라서요. 뿌듯했던 순간들이 차곡차곡 모여 계속 개발일을 할 수 있었던 것 같아요.


첫 회사에서 퇴사한다고 말씀드렸더니 소속팀장님도 아니셨던 연구소장님이 직접 파견지에 (하필 다리도 다치셔서 목발 짚고) 오셔서  왜 퇴사하는지, 남으면 어떤게 좋은지 설득하셨는데요. 이렇게 붙잡아 주시는 분도 계시는구나, 그래도 나름 열심히 개발을 했구나, 생각했어요.

두번째 회사에서도 본부 내 개발자 중 혼자 특진을 받고, 별도로 인센티브를 받기도 했어요. 이때도 열심히 하길 잘했다 싶었어요.

현재 회사에서도 좋은 평가를 받았고, 누군가에게 지금처럼만 하면 된다는 얘기를 직접 듣기도 했어요. 그동안 보내온 시간들을 보상 받은 느낌이었어요. (웃음)

이외에도 뿌듯한 순간들은 많았어요. 같이 공부했던 동생들이 모두 취업했을때, 프로그래밍 수업 중, 선생님이 칭찬해주셨을때, 같이 일하는 동료들이 모르는 문제가 생겨 저를 찾아올때.

이런 순간들 때문에 “내가 최고야” 는 아니지만, “재능이 없는 편은 아니구나” 생각할 수 있었던것 같아요. 못 한다고 생각하면 재미없어서 개발일을 계속 못했을 수도 있어요. 뿌듯함을 주는 일들이 계속 생겨서 다행이에요.

Q. 주변 맛집을 알려주세요. (인프런 공식 질문, 개발자 그 동네 맛집이 궁금하다.)

회사 근처 잠실역 9번 출구에서 조금만 더 가면 홈플러스가 있어요. 거기 ‘이태리 어부’라는 가게가 있는데 고등어구이, 우럭탕, 회덮밥, 등등 메뉴들이 있어요. 저는 거의 월요일마다 가요. 맛있고 깔끔하게 잘 나와요. 잠실역 이태리어부. 이번에 회덮밥 드신 분도 맛있게 드셨어요.

>> 인터뷰 1편 보기

창천향로 이동욱 님이 정성껏 만들었습니다.

우리는 성장 기회의 평등을 추구합니다.

 

 

 

당장 결과물이 안나와도 기다릴수 있는 사람- 창천향로 이동욱 1편

당장 결과물이 안나와도 기다릴수 있는 사람- 창천향로 이동욱 1편

Today We Learned #04
인프런이 만난 사람 – 개발자에게 듣다

당장 결과물이 안 나와도 기다릴 수 있는 사람

– 창천향로 이동욱 1편

Q. 필명이 ‘창천향로’에요. 어떤 의미인가요? 

만화책 중에 ‘창천항로’라는 만화책이 있어요. 삼국지에서 조조를 중심으로 구성한 이야기에요. 보통 삼국지가 유비를 기준으로 하는데 이건 조조 입장서 쓴 이야기에요. 근데 너무 재밌는 거예요. 삼국지 조조전이란 게임도 많이 했었고요. 당시 인생 만화라 무조건 아이디로 써야겠다 했는데요. 이 아이디를 누군가 이미 쓰고 있어서 한 글자를 더 붙여서 쓰고 있어요. 저는 조조 캐릭터가 마음에 들어요.

Q. 블로그에 활발히 기록하고 계세요.

지금 세 번째 회사를 다니고 있어요. 블로그는 첫 번째 회사 다닐 때는 못했고 두번째 회사 들어가고 2015년도에 시작했어요. 근데 한 달에 한 번 쓸까말까였어요. 집도 사람들이 안 오면 폐허가 되잖아요. 블로그도 사람들이 안오니까 할 마음이 없어져서 글을 안 올리게 되더라고요.

2015년도에 썼던 글을 보면 퀄리티가 엄청 떨어지거든요. 막무가내로 쓴 글들이 많아요. 그러다 한 번은 세미나 후기를 썼는데 그게 대박 비슷하게 났어요. 그때부터 사람들이 오길래 세미나 후기도 쓰고 관련 공부 내용을 썼어요. 그렇게 큰 사이즈는 아니지만 방문자 수가 계속 늘었어요. 요즘은 4000명 정도 들어와요. 그래서 좀 할 맛이 나요. 주말에는 천명에서 2천 명, 평일에는 4천에서 5천 사이를 왔다 갔다해요.
* 창천항로 기술 블로그 – 기억보단 기록을  

Q. 글쓸때 만화로 비유를 많이 드시던데요.

만화나 TV를 보다가 나중에 써먹을 수 있겠는데 때 싶으면 에버노트에 멘트랑 장면을 기록해둬요. 구글링해보면 해당 페이지가 딱 나올 때가 있어요. 그럼 가장 감명 깊었던 장면, 이렇게 저장을 해둬요. 검색해서 나오는 그 장면들을 모아 글을 쓸때도 있어요.

열심히 하면 잘 안되는 것 같아요. 열심히 하면 사람들이 좋아하는 글이 잘 안 나오는 것 같더라고요. 그냥 자기 전이나 샤워할 때나 어디 기차 타고 이동할 때 생각나는 걸 쓰면 좋아해 주시고 이런 주제로 써야지 작정하고 쓰면 잘 안 되는 것 같아서 그냥 생각 없이 살려고요. (웃음) 그래서 집에 TV가 없는데 TV를 살까 싶기도 해요.

채널을 돌리다 우연히 봤는데, 재밌거나 저럴 수 있구나 싶은 프로그램들이 많아요. 나이를 먹으면서 넷플릭스든 유튜브든 내 취향에 맞는 콘텐츠만 골라보니까 새로운 걸 만날 기회가 없고 좋아하는 장르, 분야, 작가 위주들의 프로그램만 보니까 범위가 한정 지어지는 것 같아요. 했던 생각, 했던 말들만 하게 되는 경향이 있어요. 다양한 환경을 접하고 싶은데 쉽지 않아요.

Q. 페이스북 커뮤니티 <초보 개발자 모임>, <JetBrains Korea User Group>의 운영자이기도 해요.

JetBrains 사용자 모임이라고 인텔리제이, 웹스톰 등 JetBrains 에서 만든 제품군의 한국 사용자가 모여있는 페이스북 그룹이에요. 저는 일반 회원으로 있다가 관리자분이 떠나면서 저랑 다른 분들을 운영진으로 선택했어요. 운영진 중 한분은 JetBrains 한국 총판업체의 과장님이세요. 그분이 행사가 있을 때 발표자로 운영진들을 밀어주려고 하셔서 혜택을 좀 받았어요.

또 요즘은 Github에 주니어 개발자 채용정보 페이지 운영을 하고 있는데요. 재미난 일들이 좀 많아요. 스타트업 인사팀에 계신분들이 자기 회사 잡플래닛 평점이 3.3이 안되는 데 혹시 공고를 올릴 수 없느냐, 이런 연락을 많이 주세요.
주니어 개발자를 위한 취업 정보

그래서 제가 아예 명시를 했어요. 어떤 회사인지 모를 때는 무조건 잡플래닛 평점보고 하겠다고요. 만약에 평점이 3.3이하일 경우에는 받지 않는다고. 사람인이나 잡코리아처럼 다해주면 안 되잖아요. 내가 잘 아는 회사거나 모르는 회사더라도 외부에서 평가가 괜찮은 회사면 올리겠는데 그게 아니면 안된다고 몇 번 튕기기도 했고요. 소개 글을 정성스럽게 써주시는 분도 계시고. 재밌어요.

Q. 커뮤니티를 세 개 운영 중인데 벅차거나 그러진 않으세요? 

네, 제가 발표하는 걸 되게 좋아해요.제가 말하는걸 좋아하거든요. 근데 어떤 회의든 아니면 회사에서는 제가 이야기를 항상 다 할 수는 없잖아요.

저는 얘기하는 걸 좋아하는데 그걸 표출할 수 있는 창구가 컨퍼런스에요. 나와 비슷한 취향을 가진 사람들한테 하고 싶은 말이 있으면 어디에 표출하지? 싶을 때 제 친구들, 제 회사 동기들한테는 얘기하기 조금 애매해요.

왜냐하면 퇴근하고 나서도 개발이나 취업, 세미나 이야기를 하는 건 좀 애매하잖아요. 그런 것들을 커뮤니티를 통해 할 수 있으니까 저에게는 오히려 스트레스를 푸는 장소인 것 같아요.

Q. 즐겨 찾는 ‘기술 블로그’가 있다면 알려주세요. 

권남* 님의 ‘까먹지 말자’ 블로그에요.
* 기술 블로그 링크 

개인적으로 멀리서 그분을 존경했어요. 권남님은 레거시를 어떻게 개편해야 하고 기술을 어떻게 적용해야 하는지, 그리고 자신의 위치에 관해 쭉 글을 쓰셨는데요. 지금은 저희 회사로 오셨어요. 다른 팀이지만 같이 일하게 되어 너무 좋아요.

비 기술 블로그에서는 생각노트가 있어요. 저희 회사 기획자분들도 많이 보시더라고요. 되게 좋아요. 그 분만의 인사이트가 있어요. 생각노트 블로그를 평소에 많이 참고해요. 회사에서도 공유된 적이 있어요. 생각노트에서 배민으로 인해 장사가 어떻게 바뀌고 있는지 포스팅 한 글*이 있었거든요.

개발을 제외하고 궁금한 게 있을 때 종종 들러요. 좋은 블로그에요. 저도 그렇게 되고 싶어요. 생각노트 뉴스레터 구독자가 9천명이 넘었어요.

뉴스레터는 페이스북에서 좋아요 누르는 거랑 완전 다른 접근성을 가지잖아요. 메일 주소를 입력하고 인증을 받아야 뉴스레터를 구독하는데, 사람들이 그 수고를 들일 만큼 글이 퀄리티가 좋고 그 숫자가 개인 블로그인데도 굉장히 많은 편이니까요. 생각노트처럼 단골을 만들고 싶다는 생각이 들더라고요.

Q. 회사에서는 어떤 일을 하나요?

속해있는 팀은 결제 정산 개발팀이에요. 거기서 저는 백엔드를 맡았어요. 저희 회사가 사실 크진 않거든요.

총 직원은 1000명인데요. 개발자는 200명, 개발 직군에서도 웹프론트, 모바일 앱, 데이터 사이언스를 빼면 백엔드 분야는 130명~140명 정도에요. 그런데 인프라 엔지니어분들이 적어서 백엔드 개발자가 코드 짜면서 인프라도 같이 해야 하는 상황이에요. 또 필요한 툴이 있으면 만들어야 하니까 주력은 백엔드 자바 코드를 짜는 일이지만 인프라랑 웹 프론트도 겸사겸사하고 있어요.

Q. 지금 하는 프로젝트도 간단히 소개해주세요.

지금은 정산이랑 포인트 두 가지 프로젝트를 맡고 있어요, 크로스오버가 되어야 하기 때문에 한 사람이 보통 프로젝트 1-2개를 맡아요. 저랑 같이 정산담당자가 있고 그분은 다른 업무를 같이하는 방식으로 해야 이 사람이 빠져도 다른 사람을 대체할 수 있어요. 전체를 다 가져갈 순 없거든요.

결제 쪽 담당자는 일본으로 여행 갔다가 거기서 작업하시기도 했어요. 왜냐하면 에러가 났는데 대응해줄 사람이 없었거든요. 그런 일도 있어서 지금은 두가지 일을 하는데요. 이것도 사람이 늘어야 나눌 수 있어서 사람을 찾고 있어요.

Q. 속한 개발팀의 자랑하고픈 지점이 있나요.

각자 잘하는 분야가 있어요. 저희가 큰 회사가 아니다 보니 인프라, 웹프론트도 해야하고 aws도 다뤄야 하는데, 각 분야를 잘하는 사람이 있어요. 인프라를 잘하는 분, 스프링부트 책을 쓰신 분, 도메인을 완전히 꿰고 있는 분도 있어요. 기획자나 운영팀 직원보다 도메인을 잘 알아서 가져온 기획을 퇴짜놓기도 해요.  

각자 모자란 부분을 채워주는 분들이 있어요. 대신에 만약 인프라 잘하시는분이 퇴사하면 위험해요. 왜냐하면 그분 위주로 일이 돌아갔으니까요. 모두가 골고루 잘하면 괜찮지만 각자 장단이 명확하니까 한쪽이 빠지면 위험해요.

회사를 다녀보니 저는 오래 다닐 것 같아요. 아직 제가 모자란 부분이 많은데요. 각 분야를 잘하는 분들께 땡겨 배울 수 있어서 좋아요. 다들 공부도 열심히 하고, 톱니바퀴기 맞물리듯 모자란 부분을 채워주면서 돌아가서 좋아요. 100% 만족하는 건 아니에요. 더 잘하시는 분이 많이 오면 좋겠어요.

Q. 백엔드, 누구나 잘할 수 있는 분야는 아닌 것 같아요. 어떤 사람들이 (어떤 습관을 가진 사람들이) 잘할 수 있을까요?

‘프로그래머의 열정을 말하다’라는 책에 이런 얘기가 있어요. 클라이언트 사이드는 기술적인 고장이 쉽게 일어나요. 하지만 백엔드의 기술적 도전은 서비스가 성공하기 전까지는 잘 일어나지 않거든요.

뒤에서 난장판을 쳐도 트래픽이 없을 때는 괜찮아요. 아무런 장애도 나지 않으니까요. 서비스가 커져야 기술적 도전과 어려움을 겪고 직접 해볼 수 있어요. 그런 경험을 하려면 큰 회사를 갈 수밖에 없는 거죠. 왜냐하면 트래픽과 수많은 데이터들을 최적화해서 다루고 기술적 도전들을 겪고, 다루려면 그런 환경을 갖춘 회사로 가야 하는데요. 그걸 얻기가 쉽지 않아요. 제 생각에  자질보다는 그런 기술적 도전을 할 수 있는 회사에 속한 사람들이 백엔드를 잘 할 수 있는 여건을 갖고 있다고 생각해요.

혼자 하는 서비스는 자기 마음대로 해도 상관없잖아요. 하루 사용자가 100명이라면 크게 상관없어요. 인프런도 마찬가지지만 서비스가 수직 상승하면 각 시기마다 필요한 기술과 구성이 완전 달라지거든요.

서비스가 커감에 따라 같이 성장해갈 수 있는 환경이거나, 아니면 너무 잘 갖춰져있어서 그대로 갖고 오면 되는 환경이거나 둘 중에 하나를 접해볼 수 있으면 좋을 것 같아요.

그런 트래픽이나 데이터를 만져볼 수 있는 환경에 있지 못하면 성장을 못하잖아요. 백엔드는 트래픽이 없으면 본인이 아무리 자질을 갖고 있어도 경험하지 못하거든요. 그래서 다들 그런 환경을 찾아가는 거 같아요.

저기 가면 뭔가 대단한 보물이 있겠거니 생각해서요. 밑바닥, 백지 트래픽에서 쭉쭉 올라가는 경험이 중요하고, 다양한 경험을 해본 사람이 백엔드를 잘 하는 것 같아요. 그래야 이렇게 하면 큰일 난다고 사전에 얘기해줄 수 있어요. 이해도도 높고요.

‘이렇게 안 해도 다 잘되던데요.’ 라고 말하는 사람들은 트래픽 경험을 해보지 않아서예요. 실제로 경험한 사람들은 그렇게 하면 어떤 일이 발생한다는 걸 알지만 보여줄 순 없잖아요. 그래서 대화하고 설득하려면 그런 환경을 경험해봐야 해요.

백엔드는 당장 결과물이 안 나와도 기다릴 수 있는 사람에게 적합하다고 생각해요.  당장 결과물이 나와야지만 되는 사람은 프론트엔드로 가야 하고요. 예를 들면 터미널만 보고도 일할 수 있는 사람들. 왜냐하면 백엔드는 그냥 api라서 화면 데이터만 나오거든요. 그럼 내가 뭘 만들었는지도 모르고, 혼자 서비스를 만들지 못해요.

초기에는 백엔드를 조금만 배워도 서비스를 만들 수 있어요. 하지만 클라이언트는 제대로 배워야 서비스를 만들 수 있잖아요. 서비스 디자인이 구리면 안쓰잖아요. 화면이 별로면 사용자가 안 쓰잖아요.

백엔드 개발자가 자기 공부시간을 빼서 클라이언트만 공부하지는 않을 거고, 남는 시간에 조금씩 공부해서는 쓸만한 서비스 화면을 만들기는 어려워요. 그래서 혼자서 서비스를 만들지 못할 수도, 당장 결과물이 안 나올 수도 있지만, 개발하는 걸 좋아하는 분들이 백엔드에 어울리지 않나 생각해요.

>>인터뷰 2편 보러가기

창천향로 이동욱 님이 정성껏 만들었습니다.

우리는 성장 기회의 평등을 추구합니다.

 

 

 

 


 

JAVA 개발자 취업부터 SPRING 개발자까지

JAVA 개발자 취업부터 SPRING 개발자까지

과정 소개

현업에서 프로그래밍 언어로 가장 많이 쓰이고 있는 JAVA
대부분의 대규모 IT 기업에서 적극적으로 사용하는 개발언어이기 떄문에 그만큼 일자리의 문이 넓은 언어 입니다. 본 러닝패스는 쌩초보를 위한 프로그래밍 개념부터 JAVA 언어 문법, 웹에서 JAVA 를 사용하게 도와주는 JSP, 규모있는 서비스를 만들 수 있도록 도와주는 SPRING 프레임웍까지 모두 배울 수 있는 강좌들을 엮어서 구성했습니다. 본 과정의 JSP-Spring 을 학습할때 HTML-CSS 에 대한 지식이 도움이 됩니다.
다음 링크에서 배울 수 있습니다. → 웹프론트 개발자 과정 바로가기  

도움이 되는 분들

프로그래밍에 대해 전혀 아는게 없는 분

입문자에게 가장 어려운일은 어떻게, 뭘 공부해야 될지 모른다는 거죠. 이 과정은 프로그래밍의 중요한 기초 개념(프로그래밍의 의미, 통신, 객체지향, 상속, 추상화) 부터 실제 현업에서 쓰이고 있는 개발 스킬까지 전반적 꼼꼼하게 다루고 있습니다. 백지상태로 이 과정을 충실히 익힌다면 제몫을 톡톡히 하는 개발자가 될 수 있습니다.

취업은 했지만 기초가 부족해 발전이 없는 분

실제 현업에서 프로그래머로 취업은 했지만, 원리를 모르고 반복적인 스킬만 사용하다 개발전선에서 이탈하는 사람들이 많습니다. 이 과정을 통해 탄탄한 개념을 쌓으면 훨씬 더 쉽고, 빠르게 더 높은 기술적 성장을 이룰 수 있습니다.

학교가 싫은 컴공 전공생

전공수업마다 내가 누구, 여긴 어디? 싶은 컴공, 공대 학생들. (다 이해합니다. 정상이에요.ㅠㅠ)이 과정을 통해 학교에서의 자아를 찾을 수 있습니다.

 

해내면 얻게 되는 것들

로드맵

완전 초보 부터 개발자 취업까지!! 실전 JAVA 강좌(ver.2018)

실전 자바 강좌 입니다. JAVA, JSP, SPRING 시리즈 강좌의 첫번째 순서로 자바의 기본에서부터 실전까지 자바 개발자로서 필요한 지식과 개념을 총 망라해 강의를 제공합니다.

신입 프로그래머를 위한 실전 JSP 강좌(ver.2018)

JSP (Java Server Page)는 자바서버 페이지의 약자로서 우리가 흔히 사용하는 웹 환경에서 작동되는 웹 어플리케션을 개발 할수 있는 도구입니다. 실전 JSP 강좌 는 아무것도 모르는 초보자 상태라 하더라도 이 강좌에서 제공하는 설명과 예제를 충실히 따라가면 누구나 JSP 프로그래머로서 웹 애플리케이션을 제작할 수 있게끔 충실히 제작 되었습니다.

신입 프로그래머를 위한 자바 Spring 프레임워크(ver.2018)

스프링 프레임워크의 기본에서부터 실전 사용법까지 충실하고 폭넓은 설명으로 현장에 바로 투입되어 활약할 수 있게끔 도와줍니다. 프로그래머로서 구직을 원하는 사람들에게도 큰 도움이 될것입니다.

스프링 프레임워크 핵심 기술

스프링 핵심 기술을 이해한다면, 스프링이 제공하는 JDBC, 테스트, MVC 관련 기능 뿐 아니라, 스프링 부트와 스프링 데이터 JPA와 같은 여러 다른 스프링 프로젝트도 빠르고 정확히 이해할 수 있습니다.
스프링 기반 REST API 개발

스프링 기반 REST API 개발

배우러 가기

1. 스프링 기반 REST API 개발

이 강좌에서는 다양한 스프링 기술을 사용하여 Self-Describtive Message와 HATEOAS(Hypermedia as the engine of application state)를 만족하는 REST API를 개발합니다.

2017년 네이버가 주관한 Deview라는 개발자 컨퍼런스에서 이응준님께서 ‘그런 REST API로 괜찮은가’라는 발표를 했습니다. 발표의 핵심은 이러합니다. 현재 REST API로 불리는 대부분의 API가 실제로는 로이 필딩이 정의한 REST를 따르고 있지 않으며, 그중에서도 특히 Self-Describtive Message와 HATEOAS가 지켜지지 않음을 지적했고, 그에 대한 대안을 제시했습니다.

이번 강좌는 해당 발표에 영감을 받아 만들었으며, KSUG에서 동일한 이름으로 2018년 11월 세미나를 진행한 경험이 있습니다. 4시간이라는 짧지 않은 발표였지만, 준비한 내용에 비해 시간이 부족할 수 있었기 때문에 진행을 빨리하느라 충분히 설명하지 못하고 넘어갔던 부분이 있었습니다. 모자란 부분을 보충하고, 또 해결하려는 문제에 대한 여러 선택지를 제공하는 것이 좋을 것 같아 이 강좌를 만들었습니다. 그리고 코딩하는 중에 제가 주로 사용하는 인텔리J 단축키도 설명합니다.

이 강좌에서는 다음의 다양한 스프링 기술을 사용하여 REST API를 개발합니다.

– 스프링 프레임워크
– 스프링 부트
– 스프링 데이터 JPA
– 스프링 HATEOAS
– 스프링 REST Docs
– 스프링 시큐리티 OAuth2

또한 개발은 테스트 주도 개발(TDD)로 진행하기 때문에 평소 테스트 또는 TDD에 관심 있는 개발자에게도 도움이 될 것으로 기대합니다.

2. 도움이 되는 분들

  • 다양한 스프링 기술을 활용하는 방법을 학습하고 싶은 개발자 또는 학생
  • REST API를 개발하는 방법을 학습하고 싶은 개발자 또는 학생
  • TDD에 익숙해지고 싶은 개발자 또는 학생

3. 학습 목표

  • Self-Describtive Message와 HATEOAS를 만족하는 REST API를 이해합니다.
  • 다양한 스프링 기술을 활용하여 REST API를 개발할 수 있습니다.
  • 스프링 HATEOAS와 스프링 REST Docs 프로젝트를 활용할 수 있습니다.
  • 테스트 주도 개발(TDD)에 익숙해집니다.

4. 사전 학습

5.  지식공유자 소개

백기선

현재 마이크로소프트에서 개발자로 재직 중입니다. 이전에 아마존과 네이버에서 일했습니다. 스프링 프레임워크와 하이버네이트(JPA)를 사용해서 개발하는 것을 좋아합니다. 온라인에서 강좌를 만들거나 유튜브에 코딩 관련 동영상을 올리며 학습하고 또 공유하고 있습니다.

배우러 가기