수준별 보충반 수업을 진행했다. git을 배웠는데.. 너무너무너무너무 어렵다
협업을 하려면 git이 필수지만 헷갈리는 게 너무 많고 강의보다 어려운 거 같다..(ㅋㅋ)
튜터님의 저장소를 포크(Fork) 후 URL 복사 한 뒤 터미널에서 명령어를 실행하여 포크한 저장소를 내 컴퓨터로 클론하는 작업을 했다.
git clone 복사한_포크_URL > git checkout -b 과제_브랜치_이름 > git add., git commit -m "커밋 명", git push origin 브랜치이름으로 푸쉬한 뒤 > Pull Request 생성 > 코드리뷰
이러한 순서로 git이 진행되었다!
팀과제는 이전에 개인과제로 진행했던 키오스크에서 플러스 기능들을 구현하는 것과 호텔예약프로그램을 만드는 것 둘 중 하나를 선택해 팀원들과 협업하며 진행하는 챕터다! 나의 팀은 총 4명으로 이루어져있고, 민주님께서 팀장을 맡으셨다! 조 이름은.. P땀눈물ㅋㅋㅋ 재밌다. 처음 진행할 때 팀장님께서 틀을 다 구축해주셨다. 그 후 각자 역할을 분담해주신 뒤 따로 각자 지식이 부족하면 강의를 듣고, 기능 구현 할 사람은 하는 시간을 가졌다. 내가 맡은 역할은 본인이 예약한 내역들을 조회할 수 있는 부분을 맡았다. 열심히 해보자~~
튜터님과 면담을 진행했다. 튜터님께서 먼저 궁금한 점을 물어봐주셨다. 평소에 내가 제일 고민하고 어떻게 해야 실력을 올릴 수 있을까 생각한 구현 능력에 대해 물어봤다.
튜터님께서는 코테를 추천해주셨다. 기본적인 문제를 풀더라도 스스로 고민해보고 모르는 문제가 나오면 답을 보고만 넘기지말고 이 코드가 어떻게 짜여졌고, 이런 식으로 구현이 되는구나를 중점으로 보라고 하셨다. 정말정말 도움이 되는 말들을 많이 해주셨다. 또한 앞으로 스프링을 배워나감에 있어서 당장은 아니더라도 나중에 제작자의 성향? 이라고해야하나 그런 것들을 파악하면 좀 더 수월하게 코딩을 할 수 있다고 하셔서 스프링 소스들이며 문서들이며 많이많이 찾아보라고 하셨다! 현재 상황에 도움이 많이 되는 말들을 많이 해주셔서 의미있는 면담이였던 거 같다!!
Java에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다.
Java Collection Framework의 상속구조

1) Set 인터페이스
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
HashSet
- 가장빠른 임의 접근 속도
- 순서를 예측할 수 없음
TreeSet
- 정렬방법을 지정할 수 있음
2) List 인터페이스
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
LinkedList
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용
- 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임
Vector
- 과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않음
ArrayList
- 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남
3) Map 인터페이스
키(Key), 값(Value)의 쌍으로 이루어진 데이터의 집합으로, 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.
Hashtable
- HashMap보다는 느리지만 동기화 지원
- null불가
HashMap
- 중복과 순서가 허용되지 않으며 null값이 올 수 있다.
TreeMap
- 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름
** Collection은 기본형 변수가 아닌 참조형 변수를 저장
** length vs length() vs size()
**1. length**
- arrays(int[], double[], String[])
- `length`는 배열의 길이를 조회해줍니다.
**2. length()**
- String related Object(String, StringBuilder etc)
- `length()`는 문자열의 길이를 조회해줍니다. (ex. “ABCD”.length() == 4)
**3. size()**
- Collection Object(ArrayList, Set etc)
- `size()`는 컬렉션 타입목록의 길이를 조회해줍니다.