Skip to content

Commit 88a508d

Browse files
authored
Merge pull request ksundong#46 from Chung10Kr/master
Java,Javascript,커뮤니케이션등 문제 추가.
2 parents ec70058 + 3e32fd6 commit 88a508d

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,14 @@ print("hello world!")
369369
<p>일반적인 경우의 장점으로는 빠른 검색 성능을 들 수 있습니다.</p>
370370
<p>일반적인 경우의 단점으로는 인덱스를 구성하는 비용 즉, 추가, 수정, 삭제 연산시에 인덱스를 형성하기 위한 추가적인 연산이 수행됩니다.</p>
371371
<p>따라서, 인덱스를 생성할 때에는 트레이드 오프 관계에 놓여있는 요소들을 종합적으로 고려하여 생성해야합니다.</p>
372+
<p>그렇다고 모든 곳에서 인덱스를 사용하면 오히려 악효과를 낼 수 있다.</p>
373+
<p>1. 인덱스를 생성하면 추가적인 저장공간이 필요하고 인덱스 관리를 위한 오버헤드가 발생 할 수 있다.</p>
374+
<p>2. 인덱스가 존재하는 경우, 데이터 삽입,수정,삭제시에도 인덱스가 함께 업데이트 된다. 다라서 인덱스 수가 많이잘수록 쓰기 성능이 감소 할 수 있다.</p>
375+
<p>3. 쿼리에 사용되지 않는 인덱스가 존재하면, 해당 인덱스는 시스템 리소스 공간을 불필요하게 차지하기 때문에 시스템 전체 성능에 부정적인 영향이 있을 수 있다.</p>
376+
<p>4. 인덱스를 관리하는것도 비용이 드는 작업이기 때문에 인덱스가 많아지면 관리하기 어려울 수 있다.</p>
377+
<p>등의 문제가 있기 때문에 인덱스를 생성전에 충분한 분석 및 검토가 필요하여 시스템을 균형있게 유지해야 한다.
378+
</p>
379+
372380
</details>
373381

374382
<details>
@@ -637,6 +645,7 @@ print("hello world!")
637645

638646
### Java
639647

648+
640649
<details>
641650
<summary>JVM의 구조와 Java의 실행방식을 설명해주세요.</summary>
642651
</br>
@@ -857,6 +866,24 @@ print("hello world!")
857866
<p>공개 메서드가 아닌 곳에는 assert를 사용하여 null을 방어할 수 있습니다. 또한 메서드의 인자를 받을 때 Objects.requireNonNull()을 사용하여 방어할 수 있습니다. 그리고 Optional을 사용해 리턴 타입에서 null을 반환하지 않도록 방어할 수 있습니다. 마지막으로 사전 조건과 사후 조건을 명확히 하여 계약에 의한 설계를 실천해야 합니다.</p>
858867
</details>
859868

869+
870+
<details>
871+
<summary>JDK와 JRE의 차이점을 설명하세요.</summary>
872+
</br>
873+
JDK는 Java Development KIT의 약자로 개발하는데 사용되는 도구이며 JRE를 포함하고 있으며 <br/>
874+
JRE는 Java Runtime Environment의 약자로 자바로 만들어진 프로그램을 실행시키는데 필요한 도구가 <br/>
875+
들어있는 차이가 있습니다.<br/>
876+
877+
운영서버와 같은 곳에서는 개발에 필요한 도구가 아닌 프로그램을 실행시키는 도구만 필요하기 때문에<br/>
878+
개발도구가 들어있는 JDK아닌 JRE를 설치합니다.<br/>
879+
880+
----여기는 굳이 말씀 안하셔도 될듯합니다.----<br/>
881+
그러나 최근에 JDK가 많이 가벼워지고 하드웨어도 좋아지고 해서 운영서버에 설치하여도 큰 문제가 없고<br/>
882+
JDK에 로깅, 디버깅, 로그분석등 유용한 도구들도 있고 해서<br/>
883+
굳이 JRE설치하는것 보다 JDK를 설치 해서 개발및 실행환경을 통합적으로 관리하는 경우도 있다고 합니다.<br/>
884+
</details>
885+
886+
860887
#### Spring
861888

862889
<details>
@@ -1027,6 +1054,7 @@ print("hello world!")
10271054

10281055
### nodeJS
10291056

1057+
10301058
<details>
10311059
<summary>nodeJS는 싱글 스레드인가 멀티 스레드인가?</summary>
10321060
<b>nodeJS는 비동기(Asynchronous)실행 기반의 특수한 멀티 스레드(Multi-thread)모델</b><br/>
@@ -1035,6 +1063,28 @@ print("hello world!")
10351063
2) 파일 읽기와 같이 시간이 오래 걸리는 작업은 다른 스레드에 맡긴다.
10361064
</details>
10371065

1066+
1067+
<details>
1068+
<summary>참조복사(얕은복사) vs 값복사(깊은복사)</summary>
1069+
1070+
1) 얕은 복사(Shallow copy)는 참조 타입 데이터가 저장한 '메모리 주소 값'을 복사한 것을 의미한다. <br/>
1071+
1072+
```
1073+
/* 얕은 복사시 주의!!! */
1074+
let origin = ["a", "b"];
1075+
let copy = origin;
1076+
1077+
copy.push("c");
1078+
1079+
console.log(origin); //["a", "b", "c" ]; // 원본까지 바뀌어버림
1080+
console.log(copy); //["a", "b", "c"];
1081+
```
1082+
따라서 원본까지 바뀌는것에 주의해야 한다. <br/>
1083+
1084+
2) 반대로 깊은 복사(Deep copy)는 새로운 메모리 공간을 확보해 완전히 복사하는 것을 의미한다.<br/>
1085+
1086+
</details>
1087+
10381088
### Python
10391089

10401090
<details>
@@ -1279,10 +1329,21 @@ DevOps는 어쩌면 신입에겐 물어보지 않을 수도 있습니다. 하지
12791329
<p>DevOps를 수행하면, 기존의 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있습니다. 이를 통해서 고객 친화적이고, 시장에 효과적으로 대응할 수 있는 유연성을 얻을 수 있습니다.</p>
12801330
</details>
12811331

1332+
1333+
1334+
1335+
12821336
### 커뮤니케이션
12831337

12841338
정답이 없는 질문입니다. 면접관마다 의도하는 답이 다 다를테니 자신만의 방법을 한 번 쯤 생각해보고 답변에 막힘이 없도록 준비합시다.
12851339

1340+
1341+
<details>
1342+
<summary>코드리뷰중 갈등이 있을 경우, 이를 어떻게 해결할 것인가요?</summary>
1343+
</br>
1344+
<p></p>
1345+
</details>
1346+
12861347
<details>
12871348
<summary>어떤 기술이나 방법론이 좋아보일 때, 이를 어떻게 설득할 것인가요?</summary>
12881349
</br>
@@ -1301,6 +1362,18 @@ DevOps는 어쩌면 신입에겐 물어보지 않을 수도 있습니다. 하지
13011362
<p></p>
13021363
</details>
13031364

1365+
### 기타
1366+
<details>
1367+
<summary>좋은 소스란, 좋은 코드, Clean Code란 어떤것인가요?</summary>
1368+
</details>
1369+
<details>
1370+
<summary>코딩테스트의 해당 언어를 선택한 이유는 무엇인가요?</summary>
1371+
</br>
1372+
<p>Java(Spring), Javascript(Node), 파이썬등 여러가지 언어가 있었는데 왜 해당 언어로 코딩 테스트를 했는지</p>
1373+
<p>해당 언어가 익숙해서 인지, 코딩 테스트 풀기 편해서인지, 우리 회사가 사용하는 언어여서 인지</p>
1374+
<p>(*질문 작성자 주)을 물어보더라구요..회사에서 이 지원자의 기술 선호도, 프로그래밍 지식의 폭, 언어에 대한 이해, 업무 적합성 등을 알고 싶어서 물어 본거 아닐까 합니다.</p>
1375+
</details>
1376+
13041377
### 개인의 역량
13051378

13061379
<details>

0 commit comments

Comments
 (0)