IntelliJ와 Eclipse   

 

  자바 웹 개발에 있어 대표적인 개발 도구는 이클립스(Eclipse) 또는 인텔리제이(IntelliJ) 일 것이다. 이 글은 인텔리에지가 이클립스에 비해 갖는 강점은 다음과 같다. 

 

  1. 강력한 추천 기능
  2. 훨씬 더 다양한 리팩토링과 디버깅 기능
  3. 이클립스의 깃(Git)에 비해 훨씬 높은 자유도
  4. 프로젝트를 시작할 때 인덱싱 하여 파일을 비롯한 자원들에 대한 빠른 검색 속도
  5. HTML, CSS, JS, XML에 대한 강력한 기능 지원
  6. 자바, 스프링 부트 버전업에 맞춘 빠른 업데이트 

 

이외에도 다양한 의견이 커뮤니티에서 나오고 있다. 무엇보다, 많은 IT 서비스 회사(네이버, 카카오, 라인, 쿠팡, 우아한 형제들 등)에서는 인텔리제이 얼티메이트를 공식 IDE로 사용하고 있다.  

 

 

 

 

 

 길다면 길고 짧다면 짧은 2개월이였지만(확실히 짧은 것 같긴합니다…) 뜻 깊은 시간이였고 저 나름대로 방학을 알차게 보낸 것 같아서 뿌듯한 시간이였습니다. 이제는 진짜 사회로 나갈 준비를 해야하는 단계라서 많이 걱정이되네요… 그래도 현장실습을 통해 많은 도움과 정보를 얻고 가는 것 같아서 준비하는 과정이 더 수월할 것 같습니다.

 

 모자란 저희를 잘 이끌어주신 이호준 멘토님, 김수보 멘토님, 학장님 그리고 이노베이션 직원분들께 정말 감사드린다는 말을 전하고 싶습니다.

 

 

 원래의 원본 글은 42place.innovationacademy.kr/archives/827 를 참조해주세요!

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근 8주차  (0) 2020.09.15
출근 7주차  (0) 2020.09.15
출근 6주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
  • 8주차(08.18~08.21, 08.24)

 이번주에는 지금까지 개발한 내용에 대한 문서작업이 주를 이루었습니다. 저 문서들을 토대로 이제까지 개발한 내용에 대해 최종발표도 진행하였습니다. 또한, 멘토님께서 이력서 검토를 해주시고 마이크로 서비스 아키텍처에 관한 세미나가 진행되었습니다. 그리고 임시 공휴일인 월요일을 대신해 다음주 월요일에 출근 하였습니다. 월요일에는 멘토님께서 성능에 관해 직접 세미나를 진행하셨습니다.

 

 먼저, 시퀀스 다이어그램을 마지막으로 정리하는 시간을 가졌습니다. 확실히, 초반에 그렸던 것보다는 더 구체적인 모습입니다.

 

 

 

 그리고 MSA에 대한 세미나도 진행되었는데 평소에 들어보지도 못한 내용이라서 이번 세미나를 통해 알게된 점이 무척 좋았습니다. 그리고 월요일에는 성능 테스트에 관한 세미나를 멘토님께서 직접 해주셨는데, Ngrinder, Locust 등 성능을 측정하는 도구들에 대한 정보와 개발자라면 성능에 대한 조건들도 고려해야한다는 것을 뇌 속에 각인시키는 계기가 된 것 같습니다. 그리고 앞으로 더 공부해야되는 것들이 많다는 사실도…

 

 

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근을 마치며...  (0) 2020.09.15
출근 7주차  (0) 2020.09.15
출근 6주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
  • 7주차(08.10~08.14)

 이번주에는 프론트팀과 작업하며 예상치 못한 오류를 해결하는 작업이 주를 이루었고, 코드 작업의 효율성을 위한 리팩토링 작업과 코딩 컨벤션을 마지막으로 점검하는 작업이 이루어졌으며 마지막 코드리뷰와 배포에 관한 세미나가 진행되었습니다. 그리고 멘토님께서 이력서를 작성해오라는 과제를 던져(?) 주셨는데 자신의 생각을 글로 표현하는 능력이 부족한 저에겐… 너무 힘든 과제지만 검토를 해주신다는 것 자체만으로도 너무 감사드려서 시간 나는대로 열심히 작성해 보았습니다.

 

 먼저, 프론트팀과의 통신을 위한 API 문서는 Notion에 정리하면서 진행되었습니다. 자세한 내용은 Notion을 참고해주세요!

 

_API_(master) (1).pdf
0.12MB

 

 

 문서 작업하면서 의견 충돌이 여러번 있었지만 그래도 서로 협의점을 잘 찾아서 다행이였습니다. 개발하는데 급급해서 자주 업데이트를 못해서 프론트팀한테는 사죄를… (シ. .)シ

 

 서버에서 잘 돌아가던 코드가 통신하면서 생긴 예상치 못한 오류들이 조금씩 등장하면서 수정하는 작업을 가졌습니다.

그리고 반복되는 코드가 너무 많아서 리팩토링 하는 작업을 가졌습니다. 왼쪽 사진에서 query문을 키워드 개수만큼 bind 변수를 추가하기 위해 for문을 사용하여 수정한 부분이 반복되어서 오른쪽과 같이 library로 만들었더니 코드가 간결해졌습니다.

 

 

 

 기존 코드에 없던 state값을 추가해서 insert와 delete를 구분하였는데 함수에 파라미터를 하나 추가한다는 것은 신중히 고려해야한다는 멘토님의 예전 말씀이 문득 스쳐 지나갔습니다. 현업에 가면 정해진 함수 규격에 따라야 하는데 서로 상의 없이 파라미터를 추가하는 것은 위험할 수 있다고… 그래서 변경된 점을 팀원들에게 빨리 알려야겠습니다.

 

 그리고 코딩컨벤션 문서를 보며 놓치는 부분이 없는지 확인하는 작업을 하면서 개발 막바지에 도달한 것 같습니다.

이번주에도 코드리뷰 시간을 가졌습니다.

 

 오늘은 같은 서비스 팀인 인평님과 준호님이 발표를 해주셨고 발표를 너무 잘해주셔서 같은 팀원으로써 감사의 표현을 (*´∀’)b

 

 

오늘도 멘토님께서 조언을 많이 해주셨습니다.

  • 파라미터 체크할 때 파라미터들을 나열하지 말고 library로 따로 빼서 체크를 하는 것이 좋다. 그리고 정수 체크, null 값 체크, undefined 체크 별로 나누지 말고 한번에 처리 하는 것이 좋다. 이 코드는 딱 오류만을 처리하는 코드이다! 라는 생각이 들도록 하는 것이 좋다.
  • 지금의 코드보단 status code를 상태별로 정의를 해놓는 것이 좋다.

 이번주에도 미쳐 생각하지 못한 부분에 대해서 피드백을 주셨습니다. 감사합니다. (*´∀’)b

 

 그리고 배포에 관한 세미나도 진행되었습니다.

 

 

배포에 대해서도 너무 추상적으로 알고 있어서 이번 기회로 조금 더 알게되는 기회가 된 것 같습니다.

 

 

 배포를 자동화해주는 툴로 travis CI, Jenkins, Chef 등이 있었는데 멘토님께서 Jenkins를 현업에서 많이 쓰인다고 특히나 강조해주셔서 따로 공부할 계획입니다.

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근을 마치며...  (0) 2020.09.15
출근 8주차  (0) 2020.09.15
출근 6주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
  • 6주차(08.03~08.07)

 이번주에도 핵심 요구사항을 개발하는 작업이 진행되었습니다. 또한, 멘토님과 함께하는 코드리뷰가 진행되었고 시스템 네트워크에 대한 세미나도 진행되었습니다.

 

서비스 팀 활동에서는 데이터베이스의 두 테이블에 있는 키워드 테이블과 카테고리 테이블을 비교하여 해당 카테고리에 키워드를 넣는 작업과 해당 키워드에 해당하는 멘토의 리스트를 배열에 담아 넘겨주는 작업을 수행하였습니다.

 

 저는 그 중 해당 카테고리에 테이블을 넣는 작업을 수행하였고 DB 커넥션을 최소화 하기 위해 한 번에 불러와 작업을 하였습니다. 또한, 다중 for문을 최소화 하기 위해 index를 설정하여 차례로 비교하는 작업을 하였습니다. 또한, 매칭과 알림에 대한 요구사항과 로그 기록에 대한 개발이 진행되었습니다.

 

 그리고 대망의 코드리뷰가 진행되었습니다. 코드리뷰는 언제나 떨리는 것 같습니다…

 

 

 서비스 팀은 지금까지 한 상황을 설명드렸고 다음과 같은 피드백을 받았습니다.

 

  • API를 설계할 때, 파라미터 변수가 중간에 설계한 것은 멀티 변수를 처리할 때 좋지 않다.

  • 파라미터 체크를 Controller 한 곳만 처리하는 것이 아닌 Controller와 Model 모두에서 처리하는 것이 좋다.

 

 코드리뷰를 하고 생각하지 못한 부분에 대해 피드백을 받는 좋은 기회였습니다.

 

 그리고 이번주는 네트워크와 시스템인프라에 대한 주제로 세미나가 진행되었습니다. 말만 들어도 어려운 주제라서 좀 긴장하고 들었던 것 같습니다. 네트워크에 대한 내용으로는 Public IP와 Private IP의 차이점, 포트포워딩, DMZ, 방화벽의 동작원리와 IDC와 클라우드가 생겨난 이유와 클라우드의 종류에 대해 알게되었고 시스템인프라에 대한 내용으로는 Iaas와 Saas, Paas의 차이점에 대해 알아보는 시간이었습니다. 내용이 너무 어려워서 다시 공부를 해야겠다는 생각이 들었네요…

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근 8주차  (0) 2020.09.15
출근 7주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
출근 3주차  (0) 2020.09.15
  • 5주차(07.27~07.31)

 이번주부터는 각 팀별로 페이즈 0을 기점으로 개발이 시작되었습니다. 개발을 시작하려고 보니 서비스 팀 내부에서도 3명이 각각 어떤 역할을 맡고 개발 할지에 대한 역할 분담이 명확히 정해지지 않아 초반에 많이 헤맸던것 같습니다.

 

 그래도 node.js와 express를 설치하여 서버 개발환경 세팅을 진행하고 MySQL을 설치하여 서버를 DB와 연동하는 작업을 수행하다보니 뭔가 좀 한 것같다는 느낌이 들었습니다. 시작이 반이라고 이제 개발만 진행하면 될 것 같습니다. (각각의 버전 정보는 이노베이션 2020 하계 현장실습 서비스팀 github를 참조해주세요)

 

 MVC 모델을 적용하기로 하였기에 모듈을 각각 모델에 적용하였습니다. ejs와 같은 앞단은 View에 적용을 하고 데이터를 접근하는 DAO는 Model에 적용하며 데이터를 Model에서 불러와 로직을 처리하는 부분은 Controller에 적용하여 구조를 나누었습니다.

 

 그리고 디버깅을 쉽게 하기위해 라우팅을 굵직한 요구사항으로 나누고 그 Model과 Controller도 요구사항별 폴더를 나누었습니다. 이로인해, 해당 요구사항에서 에러가 발생하면 그 요구사항만 찾아가면 되기에 에러를 빨리 찾아낼 수 있었습니다. 이번 주차는 페이즈0에 해당하는 멘토 정보, 키워드 정보, 커리어 정보 등을 불러오는 작업과 수정할 수 있는 작업을 수행하였습니다.

 

 이번 주차 역시 세미나를 진행하였습니다. 저번 시간까지 데이터 드리븐(그로스 해킹-데이터 마케팅-데이터 시각화)에 대해 다루었다면 이번 시간엔 그 데이터를 어떻게 수집할 것인지에 대한 내용이었습니다. 여기서 데이터를 로그라고 가정한다면 그 로그를 어떻게 수집할 것인지에 대한 질문에 머리속이 하얘졌습니다.(머리로 망치를 얻어 맞은 느낌?)

 

 저번에 멘토님이 말씀해주신 것처럼 로그를 남기는 것은 서버가 중단되어도 원인을 찾아 다시 작동시켜야 하기에 무조건 남겨야 할 만큼 중요한 건 얼마 전에 알게 되었지만 막상 그것을 어떻게 남겨야 할지에 대한 것은 제대로 생각해본적이 없기 때문입니다. 계속해서 세미나는 ELK에 대해서 진행되었고 로그 저장소인 Elasticsearch와 로그 파싱과 같은 기능을 수행하며 전송하는 등 로그 적재기와 같은 역할을 수행하는 Logstash, 로그 분석 결과를 시각화 해주는 Kibana를 이용하여 로그를 분석할 수 도 있다는 것을 알게되었습니다.

 

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근 7주차  (0) 2020.09.15
출근 6주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
출근 3주차  (0) 2020.09.15
출근 2주차  (0) 2020.09.15
  • 4주차(07.20~07.24)

 이번주에는 저번주보다 시간이 더 빨리 갔던 것 같습니다. 개발 환경을 서로 맞추기 위해 코딩 컨벤션을 정의하고 언어프레임워크을 정하는 시간을 가졌고 서비스팀 활동으로는 전보다 구체적인 시퀀스 다이어그램을 그려보는 시간을 가졌습니다.

 

 코딩 컨벤션을 문서화 할 때에는 인턴 8명 모두 평소에 코드를 짜던 습관(?)이 달랐기에 서로 합의하는 과정에서 문제가 발생했고 변수명, 함수명, 함수 위치, 띄어쓰기 등등 생각보다 고려해야 할 부분이 너무 많아서 힘들었습니다. 이건 회의하다 수보 멘토님이 찍어주신 사진! (난 표정 왜저러지?!)

 

 

 그래도 적절한 합의점을 찾아서 겨우겨우 문서화 되었고 앞으로는 이를 토대로 개발을 할 예정입니다.

 

Code-conventions.xlsx
0.10MB

 

 

서버에 쓰일 언어와 프레임워크를 정하는 시간도 생각보다 오래걸렸습니다. 서버에 사용할 언어 말고도 사용하지 않을 언어와 프레임워크에 대해서도 고려해야 했기 때문입니다. 저희는 러닝 커브를 고려하여 Node.js언어와 Express 프레임워크를 사용하기로 결정했습니다. (다른 언어는 밑 파일에 적혀있습니다.)

 

언어-선택-이유.pdf
0.53MB

 

 

 언어와 프레임워크를 정하면서 흐름을 파악하기 위해 시퀀스 다이어그램을 다시 그려보았습니다. 아직도 구체적이지 않은 모습을 보이고 있습니다.

 

 

 이번주에도 세미나가 이루어졌는데 주제는 데이터 시각화에 대한 내용을 다루었습니다. 데이터를 시각화를 하는 목적과 툴에 대해서 알아 보았습니다. 또한, 의사 결정자, 관리자, 운영자 등 각각의 데이터들이 다르기 때문에 데이터 성질(정적, 동적)에 적합한 시각화를 하는 것이 중요하다는 것을 알게 되었습니다.

 

 오늘 세미나 까지 들어보니 그로스 해킹, 데이터 마케팅, 데이터 시각화가 이어진다는 생각이 주마등처럼 지나갔습니다.

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근 6주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 3주차  (0) 2020.09.15
출근 2주차  (0) 2020.09.15
출근 1주차  (0) 2020.09.15
  • 3주차(07.13~07.17)

 

 이번주 부터는 8명의 인턴을 팀빌딩 하였습니다. 저는 프론트팀, 서비스팀, 운영팀 중 서비스팀을 맡게 되었고 각 팀별로 “멘토링 시스템”의 서비스에 대한 내용을 본격적으로 구체화하기 시작하였습니다. 그래도 아직 너무 추상적이라 문서 정리가 안된 모습입니다…

 

주요-서비스-정리.docx
0.01MB

 

팀 단위 활동 외에 전체 활동으로는 필요한 데이터를 정의하기 위해 ER 다이어그램을 그려보는 시간을 가졌습니다. 뭔가 나오긴 한 것 같습니다…

 

 

 

 이번주에 멘토님께서 좋은 조언을 해주셨습니다. 평소에 별로 중요하게 생각을 하지 않던 로그에 대해서 입니다. 먼저, “서버는 모든 클라이언트를 신뢰할 수 없으며 서버는 절대로 죽으면 안된다.”, “내가 죽을 지언정 서버는 살리고, 서버가 죽을지 언정 로그는 남겨라”라는 명언(?)을 남기셨고 저는 로그에 대해 더욱 고민해보게 되는 시간이 되었습니다.

 

 로그를 남길 때에도 국토가 넓지 않은 우리나라말고 미국이나 중국같은 경우 워낙 넓어 같은 국가지만 시차가 다르기 때문에 로그를 남길 때 조심해야한다며 유의사항 같은 것에 대해서도 생각해보는 좋은 기회였습니다.

 

 수요일에는 데이터 마케팅에 관한 세미나를 진행하였습니다. 저번 시간에 진행했던 그로스 해킹도 포함되는 주제라서 관심있게 들었던 것 같습니다. 개발과 마케팅은 별개라고 생각했던 고정관념에서 벗어나 데이터 마케팅을 통해 기획, 이행, 성과측정까지 전 분야를 아우른다는 것을 알게 되었고 이러한 데이터를 학습하고 분석하는 작업이 결국 인공지능으로 이어진다는 것을 알게되었습니다.

 

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근 6주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
출근 2주차  (0) 2020.09.15
출근 1주차  (0) 2020.09.15

 

  • 2주차(07.06~07.10)

 이번주 부터는 본격적으로 개발에 들어가기 앞서 “멘토링 시스템”에 관한 추상적인 주제에 대해 아이스 브레이킹을 하고 멘토님의 재미난 이야기, 세미나 참석, 라피신 감독 등의 시간으로 이루어졌습니다.

 

 멘토님께서 화이트보드에 아이스 브레이킹을 하여 자신의 생각을 타인에게 잘 설명하는 것이 중요하며 실제 개발 시간보다는 화이트보드 앞에 앉아 있는 시간이 더 많다는 절망적인(?) 이야기를 해주셨습니다.

 

 인턴분들은 각자 멘토님께서 제시해주신 서비스, 서비스 시퀀스, 서비스 데이터, 데이터 시퀀스 드리븐 과정에 대한 내용을 화이트보드 앞에 서서 자신의 생각을 말하는 연습을 하였고 서로 합의점을 찾아 구체화하고 아젠다를 설정하는 과정을 반복하였습니다.

 

 과정을 반복하다보니, 사람마다 생각하는 것이 달라서 그런지 의견 충돌이 많이 일어났고 절충안을 찾으려는 과정이 힘들었습니다. 나중에 현업에가면 어떨런지… 그러다가 몇 가지 아젠다가 나왔고 그 아젠다에 대한 구체적인 유스케이스 다이어그램시퀀스 다이어그램 등으로 문서화하였습니다.

 

 

 
 그리고 금요일에는 그로스 해킹에 관한 세미나를 진행하였습니다. 평소에 들어본적도 없고 생각해본적도 없기에 흥미롭게 들었습니다. 개발과 마케팅은 별개라고 생각해 막연하게 개발을 바로 시작하는 줄 알았는데 그로스해킹과 같은 데이터 마케팅을 통해 정보를 수집한 후 의사결정이 일어난 다음 개발이 들어간다는 사실을 알게되었습니다.

 

 

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근 6주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
출근 3주차  (0) 2020.09.15
출근 1주차  (0) 2020.09.15

 

  • 1주차(06.29~07.03)

 

 인턴 출근 첫 주라 그런지 정신없이 흘러갔습니다. 맥북을 사용해서 한 번도 개발을 해 본적이 없는데 맥북을 대여해주시다니... 좋은 기회를 주셔서 감사했고 맥북 개발 환경을 세팅하고 단축키를 익히다보니 시간이 너무 빨리 갔습니다. 그리고 앞으로의 협업은 구글 드라이브슬랙, 트렐로를 이용하여 진행하기로 했습니다.

 

 그리고 호준 멘토님과의 첫 만남… 개발 대선배님이시자 인생 선배님을 처음 뵀을 때, 좀 두렵고 떨렸습니다. 하지만 농담도 많이 해주시고 흥미로운 이야기를 많이 해주셔서 점점 멘토님의 매력(?)에 빠지게 되었습니다.

 

 한 번도 생각해본 적이 없는 주제에 대해 이야기 해주셔서 인상 깊었던 것이 많았습니다. 최근 나이키의 경쟁상대는 닌텐도인데, 아디다스라고 일차원적으로 생각했던 제 자신을 다시 한 번 생각해보는 계기가 되었고 고정관념을 버려야 한다는 깨달음을 얻었습니다.

 

 또한, 패킷의 여행에 대해 정리해오라는 과제를 던져(?) 주셨는데 영상을 시청해보니 평소에는 추상적으로만 패킷이 있다는 것만 알았던 저에게는 흥미를 유발했습니다. 메일룸, 라우터, 스위치, 네트워크 인터페이스, 방화벽 등… 이름은 들어봤지만 실제로 어떻게 작동하는지 몰랐는데 정확히 알아보는 좋은 기회였던것 같습니다.

 

그 다음날에도 RDBMS, 샤딩, NoSQL, Cache 서버의 관계에 대해 알아오라는 과제를 던져 주셨고 NoSQL은 그냥 필요해서 나왔겠지 이런 안일한 생각을 한 저를 되돌아보게 되는 시간이 되었습니다.

 

 

 그 밖에도, 우리가 사용하는 컴퓨터가 32비트, 64비트로 구분되는데 이것이 무엇을 의미하는지 그리고 이것이 어떠한 영향을 끼치는지에 대해 알아보는 시간을 가졌고 망치로 머리를 얻어맞은 듯한(?) 느낌을 받았고 기본적인 것에 대한 내용도 충실해야겠다는 생각이 들었습니다.

'인턴 > 이노베이션 아카데미' 카테고리의 다른 글

출근 6주차  (0) 2020.09.15
출근 5주차  (0) 2020.09.15
출근 4주차  (0) 2020.09.15
출근 3주차  (0) 2020.09.15
출근 2주차  (0) 2020.09.15