Java (Date와 정규식, Collection API, 제너릭스/열거형/어노테이션, Thread)

주8·2023년 1월 26일
0

WIL

목록 보기
6/19
post-thumbnail

기간
2023/1/16 ~ 2023/1/20

수업
실시간 ZOOM 수업


Day 14(Date와 정규식)

Date와 정규식

자바에 대한 지식이 2014년에 멈춰있었던 시절, 날짜 관련 알고리즘을 풀었을 때 당연하게도 Date date = new Date();해서 쓰고 formatter가 다 뭐야... 일일히 배열로 Monday -> 월요일로 바꿔줬던 기억이...ㅎ
나중에 검색해보고 뭐야 한글 포맷이 지원이 된다고??? 순서대로 값 입력 안 해줘도 된다고?? 하면서 놀랐던 기억이 난다...ㅎㅎ 이제 Date 안 쓰고 LocalDate... 뭐가 다른 거지... 했었는데

특히 정규식은 진짜 처음 봤을 때 뭐야 이거 암혼가... 하고 해석할(ㅋㅋ) 엄두도 못 내고 그냥 필요하면 검색해서 가져다 썼었는데... 솔직히 validate 할 때 말곤 잘 쓰지 않기도 했고...


Day 15(Collection API)

Collection API

아 나왔네 컬렉션... 배열만 알았다가 해시 알고 놀랐던 기억이 난다.
알고리즘에서 중복 제거? HashMap 아니면 (value 따로 필요 없으면) HashSet
Set인데 입력 순서 그대로 출력해야 한다? LinkedHashSet...
Iterator는 솔직히 그냥 for문으로 쓰는 경우가 더 많았다. index를 하나하나 써야하면 Iterator도 괜찮지만 건너 뛰는 경우도 많고... 아니 사실 Iterator 써도 될 때도 for each 써버림...
그래서 강의 시간에 Iterator랑 for문 쓰는 거 차이가 있냐는 질문 나왔을 때 귀가 기울여졌는데 특별히 차이는 없지만 Iterator는 hasNext로 하나하나 넘어가는 반면에 for문은 건너뛰기가 가능하니까 필요에 따라 쓰면 된다는 대답을 들었다. 뭐 그거야 그렇겠지... 그래도 이왕 Iterator가 해시의 element를 탐색하는 용도로 만들어졌으니까 쓰는 게 좋겠다.


Day 16(제너릭스/열거형/어노테이션)

제너릭스/열거형/어노테이션

저번 부트캠프에서 자바 이론은 건너뛰고 스프링부트로 프로젝트 하고 면접 대비용으로 '제네릭이 뭔가요?'라는 질문을 듣고 처음 제네릭을 알았다... 제네릭은 말하자면 데이터 타입이다. 자바는 변수를 선언할 때 데이터 타입을 함께 선언하니까 컴파일 시에 해당 element에 대해서 일일히 데이터 타입을 지정해주지 않아도 데이터 타입을 읽을 수 있다. 예를 들면 javascript에서는 변수에 대해 데이터 타입을 지정해주지 않아도 돼서 데이터 타입이 다름에도 같은 변수명을 쓸 수 있다던지... 그래서 const가 나왔다던가(상수 같은 개념으로 지금 말하는 제네릭과는 좀 다른 얘기긴 하지만 아무튼)
처음에는 아 그럼 javascript가 더 편한 거 아닌가? 했지만 사실 사용하다 보면 일일히 데이터타입을 지정하는 게 귀찮다가도 지정하지 않았으면 되게 헷갈렸겠다 싶음. 특히 나는 변수명 지정할 때마다 고뇌를 하는 사람으로써... 데이터 타입마저 구분이 안 됐다면......ㅎ


Day 17(Thread)

Thread

아 쓰레드... 강의 들으면서도 뭔 말인지...
이건 시간 내서 다시 한 번 정리를 해야 할 것 같다.
결국 '동기화'가 문제란 건제... JPA에서도 동기화 문제... 그러니까 DB 동시성 문제를 듣긴 했었는데 예시로 든 게 관리자A와 관리자B가 하나의 게시글을 동시에 수정했을 경우였다. 그럼 어떤 글을 최종적으로 반영해야 하는가... 기본적으로는 마지막에 수정된 게시글이 반영되지만 경우에 따라선 처음 것에서 변경하지 않도록 할 필요가 있다, 뭐 그런 거였는데...... 사실 쓰레드는 현 단계에서 구체적으로 실습해 볼 기회가 없어서... 또 뭐 OS마다 쓰레드를 관리하는 스케쥴링이 다르기도 하고? 어렵고만...

profile
웹퍼블리셔의 백엔드 개발자 도전기

0개의 댓글