You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+73Lines changed: 73 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -369,6 +369,14 @@ print("hello world!")
369
369
<p>일반적인 경우의 장점으로는 빠른 검색 성능을 들 수 있습니다.</p>
370
370
<p>일반적인 경우의 단점으로는 인덱스를 구성하는 비용 즉, 추가, 수정, 삭제 연산시에 인덱스를 형성하기 위한 추가적인 연산이 수행됩니다.</p>
371
371
<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
+
372
380
</details>
373
381
374
382
<details>
@@ -637,6 +645,7 @@ print("hello world!")
637
645
638
646
### Java
639
647
648
+
640
649
<details>
641
650
<summary>JVM의 구조와 Java의 실행방식을 설명해주세요.</summary>
642
651
</br>
@@ -857,6 +866,24 @@ print("hello world!")
857
866
<p>공개 메서드가 아닌 곳에는 assert를 사용하여 null을 방어할 수 있습니다. 또한 메서드의 인자를 받을 때 Objects.requireNonNull()을 사용하여 방어할 수 있습니다. 그리고 Optional을 사용해 리턴 타입에서 null을 반환하지 않도록 방어할 수 있습니다. 마지막으로 사전 조건과 사후 조건을 명확히 하여 계약에 의한 설계를 실천해야 합니다.</p>
858
867
</details>
859
868
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
+
860
887
#### Spring
861
888
862
889
<details>
@@ -1027,6 +1054,7 @@ print("hello world!")
1027
1054
1028
1055
### nodeJS
1029
1056
1057
+
1030
1058
<details>
1031
1059
<summary>nodeJS는 싱글 스레드인가 멀티 스레드인가?</summary>
1032
1060
<b>nodeJS는 비동기(Asynchronous)실행 기반의 특수한 멀티 스레드(Multi-thread)모델</b><br/>
@@ -1035,6 +1063,28 @@ print("hello world!")
1035
1063
2) 파일 읽기와 같이 시간이 오래 걸리는 작업은 다른 스레드에 맡긴다.
1036
1064
</details>
1037
1065
1066
+
1067
+
<details>
1068
+
<summary>참조복사(얕은복사) vs 값복사(깊은복사)</summary>
1069
+
1070
+
1) 얕은 복사(Shallow copy)는 참조 타입 데이터가 저장한 '메모리 주소 값'을 복사한 것을 의미한다. <br/>
0 commit comments