TIL 2023/10/26 일기 및 Java

YEONGDO·2023년 10월 26일

25일 이어서..

수준별 보충반 수업을 진행했다. git을 배웠는데.. 너무너무너무너무 어렵다
협업을 하려면 git이 필수지만 헷갈리는 게 너무 많고 강의보다 어려운 거 같다..(ㅋㅋ)

튜터님의 저장소를 포크(Fork) 후 URL 복사 한 뒤 터미널에서 명령어를 실행하여 포크한 저장소를 내 컴퓨터로 클론하는 작업을 했다.

git clone 복사한_포크_URL > git checkout -b 과제_브랜치_이름 > git add., git commit -m "커밋 명", git push origin 브랜치이름으로 푸쉬한 뒤 > Pull Request 생성 > 코드리뷰

이러한 순서로 git이 진행되었다!

  • 작성할 코드는 숫자맞추기게임이였다. 랜덤으로 숫자를 불러와 반복문을 통해 숫자를 입력받아서 입력받은 값보다 크면 UP!, 작으면 DOWN!, 숫자를 맞추면 GOOD! 을 출력하는 코드를 작성했다.

팀과제

팀과제는 이전에 개인과제로 진행했던 키오스크에서 플러스 기능들을 구현하는 것과 호텔예약프로그램을 만드는 것 둘 중 하나를 선택해 팀원들과 협업하며 진행하는 챕터다! 나의 팀은 총 4명으로 이루어져있고, 민주님께서 팀장을 맡으셨다! 조 이름은.. P땀눈물ㅋㅋㅋ 재밌다. 처음 진행할 때 팀장님께서 틀을 다 구축해주셨다. 그 후 각자 역할을 분담해주신 뒤 따로 각자 지식이 부족하면 강의를 듣고, 기능 구현 할 사람은 하는 시간을 가졌다. 내가 맡은 역할은 본인이 예약한 내역들을 조회할 수 있는 부분을 맡았다. 열심히 해보자~~


면담

튜터님과 면담을 진행했다. 튜터님께서 먼저 궁금한 점을 물어봐주셨다. 평소에 내가 제일 고민하고 어떻게 해야 실력을 올릴 수 있을까 생각한 구현 능력에 대해 물어봤다.
튜터님께서는 코테를 추천해주셨다. 기본적인 문제를 풀더라도 스스로 고민해보고 모르는 문제가 나오면 답을 보고만 넘기지말고 이 코드가 어떻게 짜여졌고, 이런 식으로 구현이 되는구나를 중점으로 보라고 하셨다. 정말정말 도움이 되는 말들을 많이 해주셨다. 또한 앞으로 스프링을 배워나감에 있어서 당장은 아니더라도 나중에 제작자의 성향? 이라고해야하나 그런 것들을 파악하면 좀 더 수월하게 코딩을 할 수 있다고 하셔서 스프링 소스들이며 문서들이며 많이많이 찾아보라고 하셨다! 현재 상황에 도움이 많이 되는 말들을 많이 해주셔서 의미있는 면담이였던 거 같다!!

1. 컬렉션(Collection)

Java에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다.

Java Collection Framework의 상속구조

  • Set: 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
  • List: 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
  • Queue: List와 유사
  • Map: 키(Key), 값(Value)의 쌍으로 이루어진 데이터으 집합으로, 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.

1) Set 인터페이스
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.

HashSet
- 가장빠른 임의 접근 속도
- 순서를 예측할 수 없음

TreeSet
- 정렬방법을 지정할 수 있음

2) List 인터페이스
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.

LinkedList
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용
- 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임

Vector
- 과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않음

ArrayList
- 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남

3) Map 인터페이스
키(Key), 값(Value)의 쌍으로 이루어진 데이터의 집합으로, 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.

Hashtable
- HashMap보다는 느리지만 동기화 지원
- null불가

HashMap
- 중복과 순서가 허용되지 않으며 null값이 올 수 있다.

TreeMap
- 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름

** Collection은 기본형 변수가 아닌 참조형 변수를 저장

  • int 의 참조형 변수 = Integer
  • long 의 참조형 변수 = Long
  • double 의 참조형 변수 = Double
  • String 은 원래부터 참조형 변수

** 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()`는 컬렉션 타입목록의 길이를 조회해줍니다.
profile
개발 블로그

0개의 댓글