![[워밍업클럽3기] 백엔드 코드 - 박우빈 발자국 2주차](https://cdn.inflearn.com/public/files/blogs/ee466805-77b9-4eb9-9ebf-10970297f929/워밍업클럽.jpg)
[워밍업클럽3기] 백엔드 코드 - 박우빈 발자국 2주차
강의 수강 노션 링크
출처
👣발자국2주차👣
🏫배운 내용 🏫
주석의 양면성
자주 변하는 정보는 최대한 주석 사용 지양하기
우리가 가진 모든 표현방법을 총 동원해서 → 코드에 녹여 → 주석 사용 지
지뢰찾기 리팩토링
게임의 상태를 주석으로 설정하는 대신 → ENUM으로 관리
그래서 외부에서 호출해서 사용하기
무한루프 반복 구조는 위험
특정 상황에서만 반복문 돌도록 바꿔줘야한다.
지뢰찾기 같은 케이스에서는 게임이 “진행중” 일때만 반복문 돌 수 있도록 처리하기
변수와 메서드의 나열 순서
💡
상태변경 메서드 >> 판별 메서드 >> 조회 메서드 순으로 나열 하자
이때, 메서드 우선순위는 공개 메서드에서 private메서드 순으로 내려와야한다.
자동테스트?
그동안 내가 학원에서 배워온 건, 수동테스트 였나보다
스프링부트에서 애너테이션을 활용하여 수동사냥만 해왔던 것..인가?
그리고 단위로 /unit으로 쪼개서 (메소드,클래스별로) 테스트를 진행 ⇒ 단위테스트
그러다보니 검증속도도 빠르고 안정적임
JUnit이란?
단위 테스트를 위한 프레임워크 → 퀜트백 프레임워크
풍부한API제공해주는 프레임워크로 테스트 코드 작성해보자
JUnit vs assertJ 두개의 차이점
AssertJ 의 장점
자연어 가까워 가독성이 좋다
체이닝 방식이 가능함
JUni5의 단점
assertEquals
는 단순히 "Expected: A, Actual: B" 결과물만 추출함기능이 단순하고 제한적
assertJ 다양한 메서드
기본적인 검증 isEqualTo()
: 두 값이 같은지 비교 isNull()
: 값이 null
인지 비교 isTrue()
: 값이 true
인지 비교
컬렉션 검증 hasSize()
: 컬렉션의 크기 비교 —> 리스트의 사이즈 찾기 contains()
: 컬렉션에 특정 요소가 포함되어 있는지 확인 isEmpty()
: 컬렉션이 비어 있는지 확인
🎶경계값 조건 * 정수가 3이상일때, A라는 조건 만족해야함.
해피케이스
경계값 활용하기 !
즉, 3에대한 테스트를 짜보자.
5에 대해는 만족하지만, 3이 만족이 안될 수 있잖아 !
예외 케이스
2로 조건값보다 더 아래쪽 범위로 테스트 하기
❗인사이트❗
칭찬
깃 사용법에 대해 좀더 연구하고, 프로젝트에 적용하며 강의를 따라가려고 노력하였다.
깃에 대해 전혀 몰랐던 사람으로,,, 개발 공부하기 위해선 깃 활용이 무척이나 중요하다는 걸 깨달았다.
코드리팩토링시 강의를 보며 , 강사님이 로직 처리를 하는 한단계 한단계씩 끊어서 정리하였다.
테스트코드 진행시, 테스트하기 어려운 부분을(요구사항에 맞게 테스트 로직을 짰는데, 그 요구사항이 개발하는 시점의 요구사항이랑 충돌이 될때 )
잘 이해하고 숙지하며 이 로직에 대해선 따로 분리하여 테스트 코드 관리하는 시야가 필요하다.
아쉬움
그러나, 동영상 일시정지를 하고 노션에 정리한다고 한들, 온전히 내것이 되는가? 아쉬움이 남아있다.
이상태로 다시 한번 해보세요~ 주어지면 , 아무것도 못한다.
내 스스로 코드를 짜보는 학습이 필요할 것 같다.
이번 미션11 코드 제출도 어디서 어떻게 시작 해야 할지 막막하다
앞으로 어떻게?
지금도 지뢰찾기 코드 마스터 하지도 않고, 미션 제출도 선생님 코드 따라치기만 했었다.
지뢰찾기 로직을 파악하기엔 내 머리가 아직 준비가 안되었고, 내 마음의 여유가 준비되지 않은 상태였다.
현재 국비학원 졸업작품으로 팀프로젝트를 지난주에 시작 하다보니, 우선순위는 팀포폴이다.
그래서 시간을 내어 지뢰찾기 코드를 마스터 하기에는 조금은 어려울 듯 하여 ,,,,
팀포폴이 어느정도 마무리가 되어가면 그때 지뢰찾기 자바 코드 눈에 익히고 리팩토링 수업을 다시 들으며
공부를 해야 할 것 같다는 생각이 든다.
🧑🏻💻두번째 중간점검
나의 코드를 다른분 코드와 비교해보자 !
미션4 미션 공통 피드백
static
정적 메소드는 빼자 ( 인텔리제이 단축키 사용한 사람 적.발)
풀스택 취업 준비
백엔드의 매력은 ?
눈에 예쁘게 보이는거 좋아하는데 → 프론트 개발자도 고민 → 프론트 앤드를 어느정도 잘 할줄 아는 백앤드 개발자가 되기로 함
성향상 잘 맞을 것 같았다. 복잡한 방식을 여러 방법으로 접근 할 수 있는게 성향이 잘 맞았다.
따라치기만 하는 지금 상황
어려움 보다는 익숙함의 문제이다 . 어려움건 10%일뿐 .
익숙하지 않아서 거부감이 드는 것 일뿐,
진짜 어려운건 아님 . 석박사 해야지 알수있는 정도는 아님
메타인지 및 의도적으로 수련하는 것이 가장 빠르고 명확하다
💡될때까지 반복해라.💡
계층구조 패키지 나누기 기준이란?
도메인중심 ( 유저, 히스토리, 오더 )
도메인별로 관심사가 명확해짐
프로젝트가 커서, 도메인별로 떨어져야한다 → 아주 좋아
유저가 회원이라는 도메인이 정말 중요해서 떼어야함 → 아주 유리 하다
컨트롤러,서비스 계층들이 각각 저 도메인별로 나누어져 있다보니, 패턴이 달라질 수 있음
공통기능이 멀리 떨어져 있으니, 공통기능이 중복으로 생성 될 우려가 있음
레이어 중심 ( 컨트롤러,서비스,모델)
한눈에 레이어러 보기 좋아.
도메인간 결합도가 증가해서 MSA전환이 불리하다
💡작은 프로젝트이면 레이어중심이 좋다
💡큰 프로젝트는 도메인 중심으로 잡자.
개발 면접
a 먼저 개발 지식 질문 CS기초, 스프링등
b 이력서 기반 질문
인성 질문 (개발에 대한 태도 )
질문의 빈도는 A>B>C
그러나 C가 별로이면 무조건 탈락
취업준비에 대해
회사가 원하는 기술들 JD가 무엇인지 공통적으로 찾고 있는 기술스택이 무엇인지 찾아보기
그리고, 그 회사만이 찾고있는 기술,팀 도메인이 무엇인지 챙겨보기
예상질문리스트 검색해서 → Interview Question Driven 취준 하기
댓글을 작성해보세요.