일단 씻고 나가자

23.03.10 본문

Study/닥치는 대로 주워 담기

23.03.10

일단 씻고 나가자 2023. 3. 13. 19:54

2023. 03. 10 금요일

 

- [Java] String을 이어 붙이는 방법?

: + / String str = text1.concat(text2); / StringBuffer sb.append(이어 붙일 텍스트);

 

 

- [Java] Map을 내림차순으로 정렬하는 방법?

: List<Integer> list = new ArrayList(map.keySet/values());

Collections.sort(list, Collections.reverseOrder());

 

 

- [Java] 특정 변수가 0 이하로 내려가지 않도록, 혹은 특정 숫자 이상으로 올라가지 않도록?

: val = Math.max(0, val-1); / 혹은 val = Math.min(array.length, val+1);

 

 

- [Java] 옵셔널로 감싸진 객체가 비어 있다면 실행한다는 내용의 함수 두 가지?

: Optional op.ifPresent( m -> {...} );

클래스 타입 val = Optional.of(객체).orElse(함수());

클래스 타입 val = Optional.of(객체).orElseGet(함수());

둘의 차이는 실행의 타이밍. orElse는 값을 인수로 받기 때문에, 객체가 비어 있든 찼든 무조건 인자의 함수를 실행한다. 먼저 함수를 실행하고 그에 따른 값을 인자로 받아야 하므로.

하지만 orElseGet은 객체가 비어 있을 때만 인자의 함수를 실행하기 때문에, 객체가 비어 있지 않다면 함수를 실행하지 않는다.

 

추가로 위와 같은 방법은 Optional 객체로 받은 후 실행하는 게 아니라, returnOptional 문장에 바로 붙여 쓰는 것이 권장된다.

https://kdhyo.kr/40

 

 

- [Java] 함수가 지저분할 때 뽑는 방법?

: 함수를 드래그. 우클릭 후 refactor에서 extract method 누르면, 같은 클래스 내에 private으로 같은 이름과 내용의 함수가 만들어진다. 코드의 가독성이 좋아짐.

 

 

- 스프링에서 service 클래스란 쓰임새가 무엇이며, 함수 명명에서의 주의점?

: service는 실제 비즈니스 로직을 담은 클래스이다. 예를 들어 회원가입에서의 조건에 대한 코드를 적는다든가 하는 실제 업무에서 활용되는 논리에 대한 코드이다.

 

따라서 함수의 명명에도 비즈니스적인 단어를 선택한다. repository에서는 단순 데이터 저장, 불러오기 기능이기 때문에 개발자스럽게 getID같이 직관적인 명칭을 쓸 수 있다면 service는 실제 다른 부서들과의 회의나 마찰이 생길 때 직접 클래스 내용을 보며 상의할 수 있도록 비즈니스에서 쓰이는 용어 중심으로 명명한다.

 

 

- 버전 관리의 효용성 두 가지는? 각각의 명령어?

: 과거 어느 시점의 코드와 차이점을 알 수가 있고, 과거로 롤백할 수 있다.

 

기본적으로는 git log를 통해 상세히 적어놨던 commit message로 확인한다.

git log p 명령어는 각 버전마다의 차이와 commit message를 보여주는데,

 

55555가 최근 버전, 4가 바로 그 전 버전이며

--- 부분이 이전 버전에서의 파일 이름, +++ 부분이 수정 이후 버전의 파일 이름이다.

부분이 이전 버전에서의 내용, + 부분이 수정 후 버전에서의 소스 내용이다.

 

--- 부분에 ‘/dev/null’이 들어갈 수도 있는데, 직접적인 뜻은 이전 파일이 null이었다는 뜻이며 그 말은 곧 파일이 새로 추가된 버전이라는 뜻이다. 즉 그림의 예시에서는 3버전이 새로 추가됐을 때 생긴 f2.txt 파일은 초기 내용이 source : 2 라는 뜻이다.

 

 

- log의 차이를 알 수 있는 방법과 명령어?

: git diff commit1ID..commit2ID

 

commit log를 치면 commit 옆에 노란 임의 글자들이 각 로그들의 고유 ID이며,

특정 두 버전의 차이를 알고 싶다면 git diff 후 두 고유 아이디를 .. 양쪽에 쓰면 된다.

 

같은 맥락으로, 각 파일들의 대해서 차이를 보여주는데 log 순서대로 a, b로 나누어 a로그 때는 내용이었는데 b로 가며 + 내용이 됐다는 걸 보여준다. 이 역시 /dev/null 이 나올 수 있는데 그 의미는 그 시기의 내용에선 해당 파일이 없었다는 것을 뜻한다.

 

git diff는 다르게도 쓸 수 있는데, vim으로 수정 후에 바로 git diff를 입력하면 현재 수정한 내용에 대한 로그를 바로 띄

워준다. 이는 작업 이전 이후의 차이를 마지막으로 확인하라는 기회 제공의 의미이다.

'Study > 닥치는 대로 주워 담기' 카테고리의 다른 글

23.03.14  (2) 2023.03.15
23.03.13  (0) 2023.03.14
23.03.09  (0) 2023.03.13
23.03.08  (0) 2023.03.13
23.03.07  (0) 2023.03.13