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
백엔드 개발자를 준비하면서 받았던 면접 질문, 학습했던 내용, 예상가능한 질문을 선별했습니다.
4
26
5
27
이 저작물은 CC BY-NC(저작자 표시-비영리)입니다.
@@ -16,7 +38,7 @@
16
38
17
39
백엔드 포지션은 면접 전 검증을 위해 과제 전형을 보는 경우도 많지만, 코딩테스트를 보는 경우가 훨씬 많습니다.
18
40
19
-
## 잘 사용하는 팁
41
+
## 이 저장소를 잘 사용하기 위한 팁
20
42
21
43
문제를 보고 음성메모로 답을 해봅시다. 그리고 음성메모를 들으면서 자신이 알고있는 것이 잘 전달되는지 확인합시다.
22
44
@@ -28,14 +50,18 @@
28
50
29
51
모의 면접을 도와줄 지인이 있다면 모의면접을 부탁해서 실제 면접처럼 수행하면 더욱 실전에서 도움이 될 것 같습니다.
30
52
31
-
## 과제 전형
53
+
이 주제들을 가지고 학습을 하는 것도 도움이 많이 될 것입니다.
54
+
55
+
## 면접 전 정보
56
+
57
+
### 과제 전형
32
58
33
59
과제 전형은 애플리케이션 서버를 만들거나, 아니면 특정 프로그램을 작성하는 과제로 나눠질 수 있습니다.
34
60
팁을 드리자면 출제 의도를 파악하려고 노력한 코딩을 하셔야합니다. 그리고, 면접에서 관련된 질문이 나올 수 있으니 사용해 본 기술이거나 처음 사용했더라도 학습을 해두셔야합니다. '왜 이 기술을 사용했는가?', '이 기술 말고 다른 선택지는 없는가?' 정도의 질문은 예상해 볼만한 질문이니 대비를 해둡시다. 과제가 통과되었다면 끝난 것이 아닙니다. 그 과제에서 더 개선할 부분은 무엇인지, 확장 포인트는 어디인지까지 고민해봅시다.
35
61
36
62
과제 전형 자체가 약간 새로운 시도에 가깝기 때문에 정답은 없습니다. 본인이 할 수 있는 최선을 다해서 해당 언어의 철학에 맞는 코드를 작성해봅시다. 가령 객체지향 프로그래밍 언어라면, '재사용성', '변경에 유연함'을 염두에 두고 개선 포인트를 잡아봅시다. 또, 해당 회사의 기술스택을 확인하고 이를 적용할만하다면 적극적으로 사용해봅시다. 최신 기술에 유연한 사고를 갖고 있다는 인상을 줄 수도 있습니다.
37
63
38
-
## 코딩테스트
64
+
###코딩테스트
39
65
40
66
코딩테스트는 여러 플랫폼이 있으며, 요즘은 프로그래머스를 많이 사용하고, 언어는 Python을 추천합니다.
41
67
제가 추천하는 학습 방법은 2개월 정도를 잡고 코딩테스트 관련 서적을 한 권 끝내거나, 유형별 문제를 푸는 것이고, 여유가 있다면 1~2시간 풀어보고(난이도마다 상이) 풀었다면 시간 복잡도를 생각하고, 다른 풀이는 없는지 고민해봅시다. 대략 이 정도 수준의 공부를 하시고, 실력을 유지하기 위해 꾸준히 한 두 문제씩 풀어봅시다. 저는 코딩테스트가 약한편이어서 더 많은 팁을 드릴 수는 없을 것 같네요.
@@ -435,6 +461,12 @@
435
461
<p>링크드 리스트는 중간에 데이터를 삽입하거나 삭제하는 것이 용이하다는 장점이 있습니다.</p>
436
462
</details>
437
463
464
+
<details>
465
+
<summary>List와 Set의 차이에 대해서 설명해주세요.</summary>
466
+
</br>
467
+
<p>List는 <b>중복</b>된 데이터를 저장하고 순서를 유지하는 선형 자료구조이고, Set은 <b>중복</b>되지 않은 데이터를 저장할 수 있고, 일반적으로 순서를 유지하지 않는 선형 자료구조입니다.(Set은 집합입니다., TreeSet과 같이 순서를 유지하는 Set도 존재합니다.) </p>
468
+
</details>
469
+
438
470
<details>
439
471
<summary>Hash Function, HashTable에 대해서 설명해주세요.</summary>
440
472
</br>
@@ -925,6 +957,20 @@
925
957
<p>만약 그런 객체를 가져와야 하는 경우 Fetch Join이라고 하는 JPQL의 join fetch를 사용합니다. 쿼리 한 번으로 해결할 수 있고, 또 다른 방법으로는 EntityGraph를 사용하는 방법이 있습니다.</p>
926
958
</details>
927
959
960
+
### Python
961
+
962
+
<details>
963
+
<summary>GIL에 대해 설명해주세요.</summary>
964
+
</br>
965
+
<p></p>
966
+
</details>
967
+
968
+
<details>
969
+
<summary>Magic method에 대해 설명해주세요.</summary>
970
+
</br>
971
+
<p></p>
972
+
</details>
973
+
928
974
## 기타
929
975
930
976
### 트러블 슈팅
@@ -1039,6 +1085,12 @@
1039
1085
<p></p>
1040
1086
</details>
1041
1087
1088
+
<details>
1089
+
<summary>컨테이너 환경에서의 디버깅은 어떤식으로 하며 상대적으로 어려운 점은 무엇인가요?</summary>
1090
+
</br>
1091
+
<p></p>
1092
+
</details>
1093
+
1042
1094
### DevOps
1043
1095
1044
1096
DevOps는 어쩌면 신입에겐 물어보지 않을 수도 있습니다. 하지만 DevOps가 무엇인지 정도는 알아두는게 좋을 것 같습니다.
@@ -1055,7 +1107,8 @@ DevOps는 어쩌면 신입에겐 물어보지 않을 수도 있습니다. 하지
1055
1107
<details>
1056
1108
<summary>DevOps가 무엇인지 설명해주세요.</summary>
1057
1109
</br>
1058
-
<p></p>
1110
+
<p>DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화와 방식이며 자동화, 측정, 공유를 수행하고 이 모든 것들을 축적해나가는 것입니다.</p>
1111
+
<p>DevOps를 수행하면, 기존의 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있습니다. 이를 통해서 고객 친화적이고, 시장에 효과적으로 대응할 수 있는 유연성을 얻을 수 있습니다.</p>
1059
1112
</details>
1060
1113
1061
1114
### 커뮤니케이션
@@ -1135,6 +1188,11 @@ DevOps는 어쩌면 신입에겐 물어보지 않을 수도 있습니다. 하지
1135
1188
1136
1189
프로젝트를 수행할 때, 내가 이 기술을 단순히 좋아보여서 사용한 것이 아니라, 많은 고민을 했음을 보여주도록 하세요. 가장 간단한 질문으로는 '왜 그 기술을 사용했나요?', '그 기술 말고 다른 기술은 왜 사용하지 않았나요?', '대체할만한 기술이 있나요?' 등이 있습니다.
0 commit comments