양식으로 자유롭게 작성하는 방침을 가져가되,
최소한 면담 주제와 주고받은 내용을 파악할 수 있도록 작성해주세요! ☺️
3주차
면담 주제
4/5 14시 30분 ~ 16시 진행
- 간단한 소개
- 질의 응답
활동 내용
질의 응답 관련(김기현님께서 정리 해주셨음)
4/5 에프 멘토님 첫 만남
충고
1. 회사 기본 자격 요건
2. 커뮤니케이션 스킬 -> 발표나 스터디로 연습해보세요
3. 개인 이력서 작성해보기
4. 멘토 괴롭히기(질문좀 해!)
5. 커뮤니티에 올라오는 질문 답해보기pr 규칙
1. 일관성 - 중괄호 위치, 메소드 이름등등
2. 네이밍 - 카멜케이스이것만큼은 지켜주자
- > 질문할 때 찾아보고 와라
- > 개인 플젝도 해보자(일상생활에 필요에 의한 주제가 좋음)채용 과정
1. 서류 ->기술스택이 맞는가?, 면접의 기반 내용
2. 코딩테스트, 과제 테스트 -> 자신의 객관화가 중요, 부족하다면 꾸준히 공부
3. 1차 면접 -> 기술(이력서 기반 기술스택, CS관련 지식), 인성
ex)기술을 선택한 이유 -> 왜 java로 했나요?, Mysql를 사용한 이유 등등
ex) 인성 -> 동료끼리의 트러블, 자신의 단점
4. 2차 면접 -> 자신이 확실히 대답하지못했던 답변들 다시 물어봄
마지막으로 하고싶은말있는가? ->내가 어떤부분을 더 보충하면좋겠는가?
or 면접관에게 감사요약 - 책 잡힐 행동 하지마세요, 상대방이 말하고 싶어하는걸 물어보기
4주차
면담 주제
4/12 14시 ~ 15시 40분 진행
- 질의 응답
- 과제 진행 관련
- DDD에 대해
활동 내용
면접 질문들
- 객체 지향이란 무엇인가?
- spring framework가 뭔가요?
- PSA
- IOC
- AOP
- POJO
- Bean으로 등록하는 이유?
- 왜 Bean을 만드는지?
좋은코드와 안좋은 코드(직접 수정해보기)동기부여하는 방식 고려해보기
1. Log level에 대한 이야기
2. enum 활용하기
3. 객체의 생성 & 검증
4. 콘솔 -> 웹으로 변화할때 얼마나 고치는가? 동시에 지원이 가능한가?
5. 읽고 쓰는부분에 JSON부분으로 저장
6. 패키지 구조 DDD (왜 이런 구조 일까?)
잘 변하지않는 방향으로 의존성을 가지자
7. 테스트 코드 작성시 일반적으로 고립상태 만들기
5주차
면담 주제
4/19 14시 ~ 15시 40분 진행
- 질의 응답
- 과제 진행 관련
- 다음주부터 월마다 개인 면담 진행
활동 내용
- 각 주 Pr는 따로해주세요!!DTO를 Controller까지사용해도되고 Service단까지 해도됨(케바케 사바사)서비스에서 다른서비스를 호출하면 주의해야함(순환참조) ->
(서비스를 위한 서비스) 퍼사드 계층 따로 만들기서비스에서 서로다른 레포지토리를 가지고 있어도 됨에프의 공지
- --------------------------------------------
한달에 한번씩 개인면담을 할예정
다음주 4/25~4/3(궁금한점 가져와, 개인적인 일, 이력서 등등)
- --------------------------------------------
구현체가 하나여도 인터페이스를 별도로 만들 필요가 있을까? DI or 테스트
- > 무조건있어야 됨
1. DI 구현체에 직접의존하지않고 어떤 구현체를 사용할지 런타임에서 고를수 있음(추상화 다형성)
2. Mock 사용(행위가 정상적으로 도는가?), Test double
인터페이스를 하나의 객체를 봄(어떤 역할을 하고 어떤 책임을 줄지)
- --------------------------------------------
(무송님) ‘로그를 남기는 기준이 어떻게 될까요?’
- > 로그는 보기위해 존재 함 (나중에 봐도)이해할수있게 or 필수적으로 남겨야할 정보
ex) Voucher를 명륜진사갈비로 쓴다 -> 실제로 그런지 확인할 수 있게 추적할 수 있는 로그
- --------------------------------------------
e.printStackTrace와 logback
e.printStackTrace는 로그레벨이 없이 표준출력(활용하기 어려움,성능면으로 문제)
logback에 중괄호를 하나 적게만들고 e.printStackTrace 맨뒤에 붙이기
- --------------------------------------------
(범석님) 예외를 어떻게 커스텀할 것인가? checked exception, 추상적인 예외와 구체적인 예
외, 서킷 브레이커
checked exception -> try-catch로 반드시 예외처리가 되어야함
★★unchecked exception★★ -> 잡아도 되고 안잡아도 되고
찾아보세요
구체적인 예외를 추상적인 예외로 바꿔라
서킷브레이커 -회로차단기(예외를 가지고 카운팅)
- --------------------------------------------
파일을 열고 닫는 것과 성능, bean의 무상태성에 대해 (기현님 코드에선 닫지 않고 있음)
파일열고 닫는것, DB 커넥션은 최소한으로 하기
Bean이 상태를 가진 필드(값)를 가짐 => 문제임
- --------------------------------------------
무엇(어떤 필드)으로 조회할 것인가? 모든 필드에 대한 조회? 성능과의 영향
과제할때는 상관없음 ^^
자료를 순서대로 정렬해서 앞뒤로 나누는것 - 이진트리 ex) 책, 인덱스
모든필드에 대해 조회하면 모든 필드에 대한 인덱스를 다 추가하고 제거해야함인덱스는 최대한 희소 해야함(카디널리티 찾아보세요)
- --------------------------------------------
프라이머리 키, 인덱스, 외래키
PK -> 유니크, 인덱스
FK -> 성능
- --------------------------------------------
비밀번호같은 민감한 정보에 대해 - 링크(형근님 코드 - https://github.com/prgrms-be-devcourse/springboot-basic/pull/172/files#diff-7bc26be01d3e7c9c566f2a28dc1b5cd87dbdd5cb619184f46eb2bf223bf7825dR6 )
jasypt, vault
- --------------------------------------------
JdbcTemplate을 왜 쓰나?
jdbc에서 사용되는 try-catch 중복되는 코드 줄이기
템플릿메소드 패턴과 관련있음
- --------------------------------------------
PreparedStatement?
성능(님이 찾아보세요)
SQL Injection 방지
- --------------------------------------------
DB에서 실제로 데이터를 삭제하는 경우는 많지 않다.소프트 delete(지운건 아니지만 사용했다고 두고 실제로 지워지는건 나중에~)
- --------------------------------------------