일단 씻고 나가자

23.03.17 본문

Study/닥치는 대로 주워 담기

23.03.17

일단 씻고 나가자 2023. 3. 21. 01:02

2023. 03. 17 금요일

 

- 링크드 리스트란? 특징? 장단점? 구조?

: 데이터를 링크로 연결해서 관리하는 자료구조. 자료의 순서는 정해져 있지만, 메모리 상의 연속성은 보장되지 않음.

 

장점으로는 리스트의 길이가 가변적이므로 데이터 공간을 미리 할당할 필요가 없지만, 단점으로 연결구조를 위한 별도 데이터와 추가/삭제 시 재구성 작업이 필요하고, 연결 정보를 찾는 시간이 느림.

 

구조는 노드(& 포인터)가 헤드, 테일 및 중간 단 노드들이 있다.

 

 

- 링크드 리스트의 노드 추가/삭제 시 유의점?

: 데이터 추가 위치에 따라서 헤드, 중간, 테일에의 추가 연결 작업이 각각 따로 필요하다.

연결 순서는 데이터의 유실을 고려하여

data1.next -> data3.next -> data2 의 순서이면 안 되고

data3.next -> data2, data1.next -> data3 의 순서로 진행되어야 한다.

 

삭제 순서 역시 삭제 노드를 지정 후 next를 먼저 바꿔주고 해당 노드를 삭제한다. 보통은 삭제 노드를 삭제해주는 게 맞지만, 자바는 가비지컬렉션을 통해 레퍼런스가 없다면 자동으로 지워준다.

 

 

- [Java] 배열을 거꾸로 전환하는 방법?

: Collections.reverse(Arrays.asList([])).toArray();

 

 

- [Java] Map은 해당하는 key가 없다면 get으로 무엇을 반환하는가?

: null

 

 

- [Java] Set이 이미 존재하는 값을 넣었을 때 일어나는 일?

: 오류가 나진 않고, 반환 값으로 false를 반환한다.

 

 

- 스프링에서 post를 만들기 위한 구성 방식? 회원가입 버튼을 누르면 일어나는 일?

: url에서 입력한 내용에 대해 컨트롤러에서 받는다.

 

return 한 문자열에 대한 html 파일을 뷰리졸버를 통해 경로를 찾아 선택하고, 타임 리프가 랜더링해준다. 기본적으로 url에 적고 검색하는 건 Get 방식. (주로 조회에 사용)

 

해당 폼에 내용을 입력하고 버튼을 누르면, 내용이 담겨서 idkey가 되어 서버로 넘어간다.

그럼 action에 해당하는 경로명의 파일로 이동하며, method에 명시된 관련 내용으로 컨트롤러에게 넘어간다. “name”을 보고, 스프링이 컨트롤러의 name 변수를 찾아 MemberForm에서 찾아서 넣어준다.

 

Post는 주로 데이터를 form 같은 곳에 넣어서 전달할 때 사용. (데이터 등록에 사용)

해당 내용을 반환한다. redirect:/ 는 홈으로 다시 보낸다는 의미.

 

 

- git이 다른 이름으로 같은 object를 가리키는 원리? 파일 저장 시 일어나는 일? (디렉토리)

: git은 기본적으로 SHA1이란 해시함수를 사용하고 있다. (검색해서 사용 가능)

SHA1은 어떤 문자열을 input 받았을 때 일정한 값을 내보내는 함수인데, 사용자가 특정 문자열의 파일을 입력하면 gitSHA1과 내부적인 정보를 함께 첨가하여 값을 내보낸다.

그렇게 내보낸 값을 통해 gitobject의 디렉토리에 값의 앞 2글자를 딴 폴더를 만들고, 그 내부에 해당 값을 저장한다. index의 파일에는 해당 값과 파일명을 저장한다.

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

23.03.21  (0) 2023.03.22
23.03.20  (0) 2023.03.21
23.03.16  (0) 2023.03.17
23.03.15  (0) 2023.03.16
23.03.14  (2) 2023.03.15