멘토링 4주차프로세스와 스레드자바 버전 별 스레드의 종류동기와 비동기, 블로킹과 논 블로킹동기화스레드 생명주기스레드 풀데드락 start와 run 메소드의 차이점 임계영역, 락리플랙션 io, nio 자바 주차가 끝이 났다. 다음 주부터 3주정도 스프링이 시작된다. 토비의 스프링 1권을 기반으로 진행되며, 자바와 동일하게 학습 시 키워드를 유추하고, 그 기간으로 깊이 있는 학습을 진행하라고 하셨다. 스프링 2주차때부터는 프로젝트 가이드가 나오고 프로젝트도 같이 진행하기 때문에 어느정도 주제를 생각해놔야한다. 스프링이 끝나는 JPA 관련 2주정도 진행하면, 어느정도 기술 면접 가이드를 끝나기 때문에 이력서 첨삭 및 지원을 시작할 예정이다.
멘토링 내용두번째 멘토링을 진행하였다. 두번째 시간도 자바의 신을 학습 후 해당 키워드에 대한 내용을 문답형태로 진행하였다. 자바의 신 1권 기준 11장부터 전체 내용을 다뤘고 내가 준비한 답변 리스트를 먼저 질문하고 멘토링이 답변을 듣고 꼬리질문 형식으로 진행이 되었다. 다음과 같은 키워드로 진행하였으며, 1주차에서 찾아보라고 해주신 내용과 자바의 신 전반에 내용이 키워드화하여 폭 넓게 진행되었다.객체, 인스턴스, 클래스객체지향 프로그래밍자바 7버전과 8버전의 메모리 구조 변화GC불변객체String, StringBuilder, StringBufferJava 컴파일 과정동일성과 동일성equals()와 hashCode() 이번주에 경우 내가 이력서를 늦게 전달해줘서, 이력서에 대한 내용은 다음 주에 진행..
멘토링 회고F-lab 멘토링의 경우 1시간정도 진행이 된다. 첫 번째 멘토링이었므로 각자 소개 후 내 상황에 대한 분석으로 시작하였다. 나의 상황 SI/SM 회사에서 3~4년 정도 일한 후 이직을 위해 퇴직하였다. 퇴직 사유는 전 회사가 주로 소규모의 프로젝트 위주로 진행하고 많은 고객을 상대로 오픈되는 사이트가 아니다보니 많은 트래픽을 대처하는 경험을 하기가 어려웠다. 그리고 항상 비슷한 프로젝트를 개발하여 한정된 기술스펙에 대해 한계가 느껴서 더 다양한 경험을 통한 성장을 위해 나오게 되었다. 이직 준비는 1년 반에서 2년 가끼이 진행하고 있으며, 너무 길어지는 상황에 답답함을 느껴 F-lab 멘토링을 신청하게 되었다.상황을 공유하고, 멘토링을 본격적으로 시작하게 되었다. 나같은 경우는 사실 시장 상..
https://hanghae99.spartacodingclub.kr/campaign 개발자 커리어 개척 캠프 항해99 | 잔디 기부 캠페인세상의 성장에 기여하세요hanghae99.spartacodingclub.kr 항해99하는 잔디기부 캠페인에 참여했다. 잔디를 기부하면 다음과 같은 증서도 받을 수 있다.!!
회원인증절차해당 프로젝트는 UI는 제공하지 않는 API 서버 구축 프로젝트라 인증절차를 글로 표현하면 다음과 같다.1. 이메일을 입력한다.2. 인증번호메일을 발송한다. 3. 메일을 확인한 후 인증번호를 입력한다.4. 인증번호가 맞으면 해당 메일의 인증이 된다.5. 그 이후에 회원가입 절차를 진행한다. 구글메일인증구글메일계정을 이용해 메일을 전달하기 때문에 전달용 메일을 만들기 위한 절차가 필요하다. 우선 `Google 계정관리`라는 메뉴에 들어가 `앱`을 검색하면 다음화면과 같이 `앱 비밀번호`가 뜨게 된다. 그럼 다음과 같이 화면이 나오게되는데 `앱 이름`을 입력하고 `만들기`를 누르면 `패스워드`를 제공해 준다. 그 패스워드를 어디에다 기록해 둔 다음 후에 SpringBoot 메일세팅에 활용할 예정이..
1주차(Day1 ~ Day3) 학습 내용 요약이번주차는 여행일정이 있어 계획한 5일치는 끝내지 못했다. Day1은 강의를 듣기 위한 기본 세팅과 기본적인 네트워크 지식에 대해 배우게된다. 본격적으로 코드를 만지기전 사전 작업이다. 그래서 코드만 만지면 모를 수 있는 기반 지식을 쉽게 설명해주고 있다. 키워드로 정리하고 블로그에 남길 내용은 링크 남기도록 하자. 라이브러리, 프레임워크의 개념과 차이인터넷의 역할 , 인터넷의 규약인 HTTP 요청 분석 , 데이터를 보내는 대표적인 두가지 방법(쿼리와 바디)URLHTTP 응답과 상태코드 Day2는 기반 지식을 통해 HTTP API를 개발해본다. GET, POST 등 기본 API를 개발한다. API를 개발전 사전 정의해야될 내용들 - API 명세 (Spec)GE..
Get API, Post API 만들어보기 문제 1문제 1 답안 Controller@GetMapping("/api/v1/calc")public CalcResponse calc(@RequestParam int num1, @RequestParam int num2) { return new CalcResponse(num1, num2);}ResponseDTO@Getterpublic class CalcResponse { private int add; private int minus; private int multiply; public CalcResponse(int num1, int num2) { this.add = num1 + num2; this.minus = n..
3주차 이번 주차에서는 특정 주제 3가지 중 하나를 선택하여 프로젝트 전 요구사항을 분석해 보는 시간이었다. 개인적으로 요구사항 분석 시 사용되는 시퀀스 다이어그램이나 API 명세 같은 작업을 별로 좋아하지 않는다. 귀찮기도 하고 문서 작업은 아무래도 큰 흥미를 발생시키지 않지 때문이다. 그래서 간단한 시나리오와 ERD 정도만 생각하고 바로 코드 작업에 들어갔다. 하지만 이런 식으로 작업하다보면 큰 빈틈을 발생시키게 된다. 평생 혼자 일한다면 상관 없겠지만 취업, 이직을 위한 Github의 작업물을 제공해야 될 때 또는 과제전형이 있었을 때 이런 문서를 제공하는 것은 당연하다. 이 외에도 회사에서 작업할 때도 이런 작업물을 사전에 만들지 않고, 최신화 작업을 하지 않는다면 남는 게 생각보다 없다. 사실 ..
2주차 회고 항해 플러스를 시작한지 2주차가 지나갔다. 2주차의 주제는 클린 아키텍터에 대한 내용이다. 많은 관심이 있는 주제였고, 책도 구매하였지만 할 게 많아서 미루고만 있었다. 그래서 이번 챕터를 하면서 강제적으로 할 수있는 기회가 생기게 되었다. 아키텍터는 직접 경험하지 않고 이론적으론 접근하기 어렵다는 느낌을 받았다. 그래서 목요일 정도까지 패키지 구성에 대한 고민만 하게되었다. 물론 성격적으로 부딪치는 방식을 잘 못하기 때문에 그런것도 있었던 것 같다. 하지만 멘토링에서 어느정도 가이드를 받고 다른 조원들의 과제 코드도 보면서 어느정도 감을 잡았었다. 이번 과제에 대해서는 fail을 받았지만 추가적으로 진행을 하지 않을 예정이다. 다음 주제에서 내가 느낀 바를 적용해가는 방식으로 진행할 예정이..
1주차 과제는 TDD이다. 간단한 요구사항이 주어지고 TDD를 이용해 구현하는 것이다. TDD에 대한 학습은 그 전에도 한 적이 있어 무리없이 진행할 수 있었다. 과제 진행 과제는 기능의 Todo가 적힌 Controller와 메모리 DB(HashMap)을 활용한 샘플코드가 주어져있다. 아래와 같은 방식으로 개발을 진행하였다. 1. 간단한 시나리오를 작성한다. 2. Controller 부터 개발을 시작한다. 시나리오 기반으로 Controller의 Request, Response을 정한다. 3. Controller에서 사용할 Service를 구현하며, 기능 메서드를 작성한다. 3-1. 여기서 부터 TDD 사이클을 적용한다. 3-2. 주로 성공 케이스를 생각하며 간단한 테스트가 통과하게 테스트 로직을 작성하고..