개발 29

개발자 성장기 (5) 코딩 테스트 / 면접 썰

이전글: 개발자 성장기 (1) 코딩과 개발자란 무엇일까 개발자 성장기 (2) 나의 두서없는 커리어 이야기 개발자 성장기 (3) 코딩을 독학하기 전에 개발자 성장기 (4) 문과 비전공자 독학 신입 개발자가 겪은 채용 과정 코딩 테스트와 면접을 여러 번 보면서 여러 가지 상황을 겪었다. 다음의 썰들은 내가 직접 겪었던 일들이다. 제대로된 취업 준비를 해본 것 자체가 처음이라 면접 과정을 겪은 것이 처음이었는데, 그러다 보니 종류 별로 실수를 꽤 많이 했던 것 같다. 특히 개발자 면접은 일반적인 직무와 다르게 기술 면접이 있기 때문에 더 긴장했고, 어떤 것을 준비해야 하는지 감이 잘 잡히지 않았다. 그래서 이 썰들이 누군가에게는 개발자 면접이 어떤 것인지 감을 잡게 해줬으면 좋겠다. 참고로 지금 코시국이기 때..

신입 개발자의 일기: 일주일 출근 후기

지금까지는 출근이 즐겁다. 아침에 일찍 일어나고 낮잠을 못 잔다는 것 정도가 힘든 것 같다. 여태까지 제대로 일한것은 없다. 이것저것 설치하는데만 2~3일 정도 걸린 것 같다. 게다가 테스트 DB, 테스트 서버까지 들어가는 것은 꼬박 4일이 걸렸다. 그러고 나서야 프론트엔드, 백엔드 코드를 살펴보면서 일주일이 갔다. 이제는 서버와 프론트엔드의 구조까지 파악했고, 어떻게 연결되어 있는지도 이해했다. 일주일간 회사에 놀러간 것 같다. 꼭 일을 안 해서 놀러간 느낌이 드는 것은 아니다. 회사 사람들이 정말 좋다. 마치 여기서 일한지 최소 몇 달은 된 것 같은 기분이 든다. 다들 워낙 친절하게 대해주셔서 엄청나게 빨리 적응했다. 원래도 적응이 빠른 편이기는 하지만, 출근 첫 날부터 친근한 느낌이 들었을 정도로 ..

npm install 오류 (Windows10/WSL/Ubuntu/PowerShell)

Node.js에 자바를 연결하기 위해 npm i java 를 실행했다. 자바 파일, nvm, node 다 제대로 깔려 있었고, node-gyp과 gyp에서 필요한 파이썬까지도 제대로 깔려 있었는데 이상하게 아래와 같은 오류가 뜨면서 설치가 되지 않았다. 계속 구글링을 하며 오류를 해결하려고 노력해 보았고, 이것 저것 지우고 다시 깔아보았지만 해결이 되지 않았다. > java@0.12.2 install /mnt/c/WINDOWS/system32/node_modules/java > node-gyp rebuild (node:3938) UnhandledPromiseRejectionWarning: TypeError [ERR_STREAM_NULL_VALUES]: May not write null values to ..

개발/디버깅 2021.11.08

개발자 성장기 (4) 문과 비전공자 독학 신입 개발자가 겪은 채용 과정

이전글: 개발자 성장기 (1) 코딩과 개발자란 무엇일까 개발자 성장기 (2) 나의 두서없는 커리어 이야기 개발자 성장기 (3) 코딩을 독학하기 전에 나는 비전공자에 신입인 백엔드 개발자다. 4년제 대학교를 나왔고 영어를 잘한다는 장점이 있기는 하지만, 개발자 취업 시장에서 그다지 유리한 위치는 아니다. 게다가 독학을 하는 바람에 학원에 연계되어 있는 회사에 지원할 수도 없었다. 그렇지만 그렇다고 아무 회사에서 억지로 일하면서 경력을 쌓고 싶지는 않았다. 지금은 취직해서 정말 만족스러운 회사에 다니고 있는 상태인데, 어떻게 취업하게 되었는지 정리하려고 한다. 나의 경험뿐만 아니라 지인의 경험까지도 고려해서 내가 할 수 있는 최대의 자료를 만들어 보려고 노력했다. 참고로 그 지인도 문과 출신 비전공자 신입이..

신입 개발자의 일기 20211106

1. 취업했다. 정말 마음에 드는 회사에 취업해서 기쁘다. 회사 사람들도 좋고 분위기도 좋다. 하지만 여태까지는 아직 필요한 프로그램도 다 못 깔았다. 무슨 오류가 그렇게 많이 나는지... 하나 하나 버전을 맞춰서 깔아야 하는데 그 버전들을 다 맞추기가 꽤 귀찮고 번거롭다. 그런데 물어보니 원래 그 작업이 최소 1~2일, 심하면 3일까지도 걸린다고 한다. 게다가 나는 윈도우 파워셀을 거부하고 굳이 WSL을 사용하는 바람에(..) 엄청 고생했다. 알고 나니 정말 바보같았는데, 이런 실수를 신입 때 해야지 또 언제 하겠는가. 지금까지 딱 이틀 출근했는데, 거의 놀러가는 기분으로 출근했다. (실제로 한 일도 별로 없지만...) 2. 취직하고 이제 또 새로 배워야 하는 것들이 많다. 오히려 취직하기 전에는 이런..

[JavaScript] 「모던 자바스크립트 Deep Dive」 리뷰

자바스크립트를 독학하면서, 관련된 여러 책을 살펴 봤었다. 그 전에 자바를 공부했을 때 학원에 다니기는 했지만, 그 때도 책을 두 권 사서 책으로도 공부했었다. 아무래도 책에는 그 언어에 대한 설명도 더 곁들여져 있고 저자의 통찰력이 녹아있기 때문에, 그냥 강의만 듣거나 부분 부분 검색하며 공부하는 것 보다는 확실히 깊게 공부할 수 있어 좋았다. 그리고 한 권 보다는 두 권의 책(얇은 것 하나, 두꺼운 것 하나)을 봤을 때 이해가 쉬웠다. 얇은 책으로 언어를 대략적으로 파악한 후에 두꺼운 책을 보면서 좀 더 심층적으로 이해하는 것이다. 그리고 는 두꺼운 책이다. 자바스크립트에 대해 심층적으로 다루기 위해 노력한 책이다. 아주 기초적인 것부터 자바스크립트라는 언어의 동작 원리까지 많은 것을 다루고 있다. ..

개발/JavaScript 2021.11.01

[자료구조 with JS] 연결 리스트(Linked List) (3) 반복문과 알고리즘

이전글: [자료구조 with JS] 연결 리스트(Linked List) (1) 개념과 클래스 [자료구조 with JS] 연결 리스트(Linked List) (2) 삽입, 검색, 삭제 연결 리스트의 반복문 for...of 반복문 *[Symbol.iterator]() { let node = this.head; while(node) { yield node; node = node.next; } } [Symbol.iterator]이 왜 사용되었는지 알고 싶다면 MDN의 Iteration Protocols를 확인하면 된다. 또한 yield 키워드는 제너레이터를 사용한 것이다. forEach 반복문 forEach(func) { let node = this.head; let counter = 0; while(node)..

[자료구조 with JS] 연결 리스트(Linked List) (2) 삽입, 검색, 삭제

이전 글: [자료구조 with JS] 연결 리스트(Linked List) (1) 개념과 클래스 연결 리스트의 메서드 삽입 insertFisrt(data) insertFirst(data) { this.head = new Node(data, this.head) } insertAt(data, index) //Solution 1 insertAt(data, index){ //연결 리스트에 노드가 하나도 없는 경우 if(!this.head) { this.head = new Node(data); return; } //사용자가 입력한 index가 연결 리스트의 크기보다 큰 경우, tail 노드로 추가한다. if(this.size() < index) { this.insertLast(data); return; } //사용..

[자료구조 with JS] 연결 리스트(Linked List) (1) 개념과 클래스

연결 리스트(Linked List) 연결 리스트는 순서가 있는 데이터의 집합으로, 여러 노드들이 들어있다. 각 노드는 정보를 담고 있으며 다른 노드를 가리킨다. 배열은 크기가 고정되어 있는 만면, 연결 리스트는 실행 시간에 메모리를 할당, 해제할 수 있다. 즉, 동적 자료 구조이다. 연결 리스트의 특징 1. 연결 리스트 내부의 노드의 순서는 항상 유지된다. 2. 모든 연결 리스트에는 두 개의 특수한 노드가 있다: 맨 처음 노드인 head, 맨 마지막 노드인 tail이다. 3. tail 노드를 알아볼 수 있는 방법: 다음 노드에 대한 참조가 없다. 4. 모든 노드에는 두 개의 부분이 있다. 데이터 파트와 다음 노드에 대한 참조 파트이다. 5. 어떠한 타입의 자바스크립트 데이터든 노드에 할당할 수 있다. 노..

[자료구조 with JS] 스택(Stack)

스택(Stack) 데이터가 들어오는 방향과 나가는 방향이 같은 자료구조이다. 마지막에 삽입된 항목만을 제거하고 접근할 수 있다. 상자 안에 그릇이 쌓여있는 것을 상상하면 쉽다. 그릇을 추가할 때에도 맨 위에만 추가할 수 있고, 제거할 때에도 맨 위에 있는 그릇만 제거할 수 있다. 스택의 특징 1. First In Last Out (FILO): 마지막에 들어온 정보가 먼저 나간다. 2. 스택의 삽입과 삭제는 각각 배열의 push(), pop() 메서드를 사용하여 구현할 수 있다. 3. 속도가 빠르다는 장점이 있다. 삽입(push), 삭제(pop), 들여다보기(peek) class Stack { constructor() { this.stack = []; } push(n) { this.stack.push(n)..

728x90
반응형