🗓️ 2022-10-26(수) ~ 2022-11-1(화)
우아한테크코스 5기 프리코스 1주차가 끝났다!
아무것도 준비가 되지 않은 상태로 경험을 위해 시작했는데, 그냥 흘러보내긴 아까우니 기록을 시작해본다. 🤟
정말, 그냥, 우연하게 학교 열람실 옆 게시판에서 우테코 5기 모집 포스터를 보게됐다. 인사캠인데 우테코 포스터가 있다니 웬일이야ㅎ. 원래 이런 부트캠프 형식의 프로그램에 참여하고 싶었는데 놓칠 수 없는 기회라 거의 하루만에 지원서를 작성하고 아무것도 준비가 안 된 상태로 우테코를 시작하게 되었다!!!
이번 우테코는 특이하게 지원한 누구에게나 4주의 프리코스 과정에 참여할 기회를 준다. 이런 고급 경험을 할 수 있다는 점이 가장 마음에 들어서 망설임 없이 지원하게 되었다. 내가 지원한 부분은 백엔드. Java로 미션을 진행하는데 나는 자바를 한 번도 해본 적이 없다. 즉, 맨땅에 해딩 중이다.🤪
내가 우테코에 지원한 이유는 합격이 아니라 경험을 위해서이다. 지식과 실력이 너무 부족하다는 것을 알기 때문에 최대한 많이 경험하고 이 과정을 통해서 배우는 것이 목표이다. 1주차가 지났는데 느낀 것이 많아 정리를 해 보려고 한다.
https://github.com/woowacourse-precourse/java-onboarding
1주차 미션은 Java를 이용하여 위에 제시된 7가지 문제를 해결하는 것이었다. 1주차 미션의 목표는 git, Java, 미션 사이클에 익숙해지는 것! 나에게는 셋 중 어느 하나도 익숙하지 않았기 때문에 배울 것이 넘처나는 한 주였다.
프리코스 1주차를 진행하며 공부한 것, 새롭게 배운 것, 아쉬웠던 점을 정리해본다.
👎 자바를 공부할 때 너무 시간에 쫓기면서 공부해서 아쉬웠다. 기본 문법만 최대한 빠르게 완료하고 바로 미션으로 넘어갔는데 애매하게 아는 상태에서 미션을 해결하려고 하니까 이상한 방법으로 풀게되고 오히려 낭비되는 시간이 많았다. 특히 리스트/배열 같은 콜렉션 개념을 제대로 공부하지 않고 진행하니까 구글링을 하여도 이해가 어려웠고 오류가 났을 때 그 원인을 찾아낼 수 있는 힘이 없었다.
👍 이번 주차에는 자바 공부를 먼저 선행하고, 미션을 진행하려고 한다. 일단 지금 가지고 있는 책 완독하기!
👎 공부를 하고는 있는데 관련 원리나 개념을 공부할 시간이 없었다. 지금 내가 뭘 하고있는건지 궁금해!!
👍 1주차 공통 피드백에 깃허브 공부 소스가 같이 올라왔다. 야무지게 공부해야지~~
1주차 공통 피드백 중 나에게 해당하는 것들.
.class 파일은 java 코드가 있으면 생성할 수 있다. 따라서 .class 파일은 굳이 git을 통해 관리하지 않아도 된다.
IntelliJ IDEA의 .idea 폴더, Eclipse의 .metadata 폴더 또한 개발 도구가 자동으로 생성하는 폴더이기 때문에 굳이 git으로 관리하지 않아도 된다.
앞으로 git에 코드를 추가할 때는 git을 통해 관리할 필요가 있는지를 고려해볼 것을 추천한다.
기능 구현 작업을 fork된 Repository의 main branch가 아닌, 기능 구현을 위해 새로 만든 브랜치에서 작업한 후 PR을 보낸다.
PR을 한 번 작성했다면 닫지 말고 추가 커밋을 한다
PR을 이미 한 번 보냈다면, 새로운 PR을 생성할 필요가 없다. 수정이 필요하다면 추가 커밋을 하면 자동으로 반영된다. 단, 미션 제출 기간 이후에는 추가 커밋을 하지 않는다.
나 자신, 다른 개발자와의 소통을 위해 가장 중요한 활동 중의 하나가 좋은 이름 짓기이다. 변수 이름, 함수(메서드) 이름, 클래스 이름을 짓는데 시간을 투자하라. 이름을 통해 변수의 역할, 함수의 역할, 클래스의 역할에 대한 의도를 드러내기 위해 노력하라. 연속된 숫자를 덧붙이거나(a1, a2, ..., aN), 불용어(Info, Data, a, an, the)를 추가하는 방식은 적절하지 못하다.
의도를 드러낼 수 있다면 이름이 길어져도 괜찮다.
누구나 실은 클래스, 메서드, 또는 변수의 이름을 줄이려는 유혹에 곧잘 빠지곤 한다. 그런 유혹을 뿌리쳐라. 축약은 혼란을 야기하며, 더 큰 문제를 숨기는 경향이 있다. 클래스와 메서드 이름을 한 두 단어로 유지하려고 노력하고 문맥을 중복하는 이름을 자제하자. 클래스 이름이 Order라면 shipOrder라고 메서드 이름을 지을 필요가 없다. 짧게 ship()이라고 하면 클라이언트에서는 order.ship()라고 호출하며, 간결한 호출의 표현이 된다.
객체 지향 생활 체조 원칙 5: 줄여쓰지 않는다 (축약 금지)
if, for, while문 사이의 공백도 코딩 컨벤션이다.
공백 라인을 의미 있게 사용한다
공백 라인을 의미 있게 사용하는 것이 좋아 보이며, 문맥을 분리하는 부분에 사용하는 것이 좋다. 과도한 공백은 다른 개발자에게 의문을 줄 수 있다.
변수 이름, 함수(메서드) 이름을 통해 어떤 의도인지가 드러난다면 굳이 주석을 달지 않는다. 모든 변수와 함수에 주석을 달기보다 가능하면 이름을 통해 의도를 드러내고, 의도를 드러내기 힘든 경우 주석을 다는 연습을 한다.
IDE의 코드 자동 정렬 기능을 활용한다
IDE의 코드 자동 정렬 기능을 사용하면 더 깔끔한 코드를 볼 수 있다.
IntelliJ IDEA: ⌥⌘L, Ctrl+Alt+L
Eclipse: ⇧⌘F, Ctrl+Shift+F
함수(메서드)를 직접 구현하기 전에 Java API에서 제공하는 기능인지 검색을 먼저 해본다.
Java API에서 제공하지 않을 경우 직접 구현한다.
예를 들어 사용자를 출력할 때 사용자가 2명 이상이면 쉼표(,) 기준으로 출력을 위한 문자열은 다음과 같이 구현 가능하다.
List<String> members = Arrays.asList("pobi", "jason");
String result = String.join(",", members); // "pobi,jason"
Java Collection 자료구조(List, Set, Map 등)를 사용하면 데이터를 조작할 때 다양한 API를 사용할 수 있다.
예를 들어 List에 "pobi"라는 값이 포함되어 있는지는 다음과 같이 확인할 수 있다.
List<String> members = Arrays.asList("pobi", "jason");
boolean result = members.contains("pobi"); // true
2주차도 고생 길이 훤히 보인다ㅋㅋ 이번주는 7일 중 몇 밤을 새게될까..?
하지만 완주가 목표! 반성은 하되 후회하지 말자!
잘보고갑니다!