일단 씻고 나가자
23.07.17 본문
2023. 07. 17 월요일
- [Java] concurrentmodificationexception이란 무엇이며 해결 방법?
: 컬렉션의 순회 중 특정 원소를 삭제나 수정할 때 일어난다.
해결 방법은 Interator의 remove()를 쓰거나, 삭제할 원소를 다른 컬렉션에 모아두고 한 번에 removeAll()로 처리하는 방법이 있다.
- [Effective Java] 컴파일러의 warning이란? 문제점과 해결책?
: 컴파일러의 경고 표시로, 실행하여 치명적인 결과를 낳진 않기에 진행하여도 상관없으나 경고를 주는 표시. ‘비 검사 경고’라 한다.
‘기술 부채’처럼 이전에 하나씩의 경고가 쌓여 큰 에러로 돌아올 수 있으며, 많은 warning을 무시하고 진행했을 때 에러가 터지면 정작 어떤 부분이 주요 warning인지 찾지 못하는 경우가 발생한다. (의존성을 추가하는 작업일 경우 다수 발생)
- 다익스트라 알고리즘 설명, 조건? 설명?
: 출발점에서 목표점까지의 최단 경로를 구하는 알고리즘이며, 한 노드에서 다른 모든 노드로의 최단 경로가 모두 구해짐. 단, 간선에 음의 가중치가 없어야 함.
다익스트라는 DP와 그리디의 합으로 볼 수 있다. 최초엔 모든 노드의 값을 INF로 초기화한다. 시작 노드에서 주변 노드들을 간선 값으로 초기화한 후, 그 값 중 최솟값을 선택하여 같은 과정을 반복한다. 이때 최솟값으로 항상 업데이트하며, 선택된 노드는 다시 방문하지 않는다.
- 쉘 스크립트에서 특정 IP가 살아 있는지 1번 체크하고, 반응에 따라 출력하는 코드 작성?
ping은 해당 IP에 요청을 던지는 것이고, -c 1 은 count로 한 번만 요청하는 명령어, 1은 표준 출력으로 0(표준 입력), 2(표준 에러)가 있다. 해당 결과에 대해 > /dev/null 명령어로 아무것도 출력하지 말라는 내용. (‘>’는 redirection)
$?는 직전에 실행한 명령에 대한 변수이다.
- 쉘 스크립트에서 조건문을 한 줄에 작성하는 방법? 이때 연산자 주의할 점?
: ‘;’를 이용하여 if [ 1 > 2 ]; then 명령문; fi 로 작성할 수 있다. (명령문에서도 가능)
이런 방식에서 &&, || 등의 조건문이 가끔 에러가 날 수 있는데, 그땐 [[]]를 사용하면 정상 작동하는 경우가 있다.
- 쉘 스크립트에서 반복문(for, while)을 작성하는 방법? 디렉토리 파일명을 출력하는 코드?
: 기본적으로 for 변수 in 리스트 do 명령문 done 방식을 사용한다.
while도 흡사하다. while [ 조건문 ] do 명령문 done 으로 사용한다.
- 쉘 스크립트에서 압축의 명칭, 확장자, 특징, 명령어?
: 리눅스에서는 여러 파일을 한 파일로 묶은 것을 아카이브(archive)라고 하며,
확장자는 .tar이다. tar는 단순히 여러 파일을 하나의 파일로 묶은 것으로, 이를 압축하려면 따로 .tar.gz라는 확장자의 gzip 프로그램을 사용하여 두 단계로 진행된다.
따라서 압축하려면 tar 명령어를 사용하되 옵션으로 gzip 기능을 사용해야 한다.
명렁어는 tar –cvzf [압축된 파일 이름] [압축할 파일이나 폴더명]
tar –xvzf [압축 해제할 압축 아카이브 이름]으로 작성한다.