[Java 풀스택 과정 강의] 2월 5일

부트캠프 일지/Java 풀스택 과정 강의
2026.02.12
※ TIL와는 별개로 적는 개인 개발 일지라서 말은 좀 편하게하는 페이지입니다.
일지이기 때문에 일기의 성격이 더 강합니다.

 

 

2월 5일차의 강의.

SQL문에 대해서 꾸준히 배우는 중. 서비스 프로그래밍 쪽도 다다음주로 마무리한다.

그러므로 설날이 되기 전에 일지를 마무리 해야만 한다.

 

MAP 컬렉션 사용

MAP 컬렉션과 그에 사용하는 메서드들을 사용해보는 시간을 가졌다. 먼저 사용하기 위해서는 import java.util.Map;이 선행되어야 한다. map 컬렉션이란 키key와 값value을 하나의 쌍으로 묶어 저장하는 컬렉션을 의미한다. 엄밀히 말하면 map 자체는 컬렉션은 아니고, 하나의 인터페이스이다. key와 value의 사용이라면 JS에서도 좁은 의미의 object가 그런 형태였는데, 그와 비슷하다 보면 된다.

 

Map<Key,Value> map = new HashMap<>();

제네릭으로 Key와 Value가 될 타입을 지정한다. 여기서 HashMap이란, Map 인터페이스의 구현체를 의미한다. Map은 위에서 말했듯 하나의 인터페이스이므로, 그걸 클래스형태로 사용하려면 HashMap을 선언하여 실제 객체를 생성할 필요가 있다.

사용을 위해서는 import java.util.HashMap;이 필요하다.

 

map.put(key, value)

map 컬렉션에 key와 value(둘을 Entry라는 쌍으로 명명한다)를 추가한다. key 값이 컬렉션에 존재하는지 확인하고, 있으면 value만을 수정한다.

 

map.size()

컬렉션 내의 전체 엔트리 수를 반환한다.

 

map.get(key)

특정 key에 대한 value를 추출하여 반환한다.

 

map.keySet()

컬렉션 내의 모든 엔트리의 key를 반환한다. Set 타입으로 변환한다. 여기서 객체타입 Set이란, 순서가 없고 중복값이 없는 컬렉션을 의미한다.

사용을 위해서는 import java.util.Set;이 필요하다.

 

map.keySet().iterator

컬렉션을 순회하게 해주는 객체 iterator를 반환한다. 참고로 map은 컬렉션을 상속하지 않기 때문에 keySet을 사용해야 한다.

사용을 위해서는 import java.util.Iterator;가 필요하다.

 

Iterator.hasNext()

참조할 항목이 있는지 여부를 반환한다. boolean 형태로 반환한다(true/false).

 

 

map.entrySet()

모든 entry를 Set타입으로 반환한다. 여기서 Set<Entry<String,Integer>> entrySet = map.entrySet(); 이런 형태로 사용하게 되는데, 해체분석하면 이렇다.

 

먼저 Entry<String, Integer>은 Map의 Entry를 나타내는 것이다. 그리고 이걸 Set으로 감싸면 중복없고 순서 없는 Entry들의 컬렉션이 되는 것이다. 참고로 이 Map의 Entry를 사용하려면 import java.util.Map.Entry;가 필요하다(없이 사용하려면 Entry라는 축약형이 아니라 Map.Entry처럼 사용해야한다.)

 

 

Entry.getKey()

특정 entry의 key를 추출한다.

사용하려면 import java.util.Map.Entry;가 필요하다.

 

map.clear()

모든 entry를 삭제한다.

 

 

 

예외 상황 취급

내가 TIL에서 try-catch에 관해서 인용한 글이 있는데, 저작권 때문에 미처 올리지 못했으므로 다시금 올린다.

 

 

나는 늘 개발자라는 건 무언가를 만들기보단 픽스하는 것을 즐기는 자에게 적성이 있다고 생각한다. 매일매일 에러와 예외상황과의 싸움이기 때문이다. 괜히 디버깅이 제일 크게 쳐주는 스펙인 게 아니다(…). 실제로 만드는 것 자체는 AI도 문제 없이 만든다. 문제는 인간이 원하는 방식이 아닐 뿐이지. 이런 지점에서 사회성 없는 개발자라는 건 환상이지, 개발자는 소통을 열심히 해야한다고들 한다. 여하튼 중요한 부분은 아니고 잡담이었다.

 

try-catch는, 위험할 수도 있는(=오류를 일으킬 수도 있는) 문장이 일으키는 오류(예외)를 처리하기 위해 있다. try 영역에서 발생한 예외 상황은 catch 에서 처리된다. try-catch문은 try-catch-finally로 이루어지는데, finally는 오류가 있든 없든 상시처리 되고는 한다.

 

try {
  // 실행할 코드
} catch(예외사항) {
  // 오류가 일어날 경우 실행할 코드
} finally {
  // 오류 여부에 관계 없이 실행할 코드
}

 

이런 형태가 된다.

 

예외사항에 대한 문구는 여러가지가 있는데, 잡아내기 어렵다면 Exception e 문구를 사용한다. 다만, 이 경우 어떠한 종류의 오류(예외사항)이 일어나는지 모르기 때문에, 발생할 수도 있는 예외사항을 상정하여 여러 catch문을 사용하고 차례대로 잡고는 한다. catch문은 멀티로 작성(여러개를 작성)할 수 있는데, 좁은 예외사항부터 시작하여야 한다. 만약 Exception e 부터 멀티문을 작성하면, 이후로는 잡아낼 수가 없게 된다.

 

DATABASE

수업에서는 대략적인 설명과 함께 오라클을 설치했다. 아니나 다를까 예전부터 나를 괴롭게 했던 한글 window 계정명으로 인하여 도커를 설치했다. 설치만으로 남은 1시간이 지났기 때문에 본격적인 이론 설명은 6일부터 진행했다.