본문 바로가기

전체 글578

[비전공자 개발자 취업 성공기] 3편 - "칼을 갈았다. 진짜 승부가 시작됐다" 칼을 갈았다. 진짜 승부가 시작됐다상반기 공채에 칼을 갈았다. 시기도 마침 내가 이전부터 계획했던 공부 스케줄을 다 소화하고 여러번 복습까지 마쳐서 자신감이 가장 높을 때였다. 지난 하반기 공채와 마찬가지로 일단 어느 정도 들어본 기업엔 이력서나 코테 신청을 해서 코딩 테스트를 보았다. 그 결과 거의 모든 기업에 코딩 테스트는 합격을 할 수 있었고 자연스럽게 면접 기회도 많이 주어졌다.기술 면접, 드디어 내가 준비한 걸 꺼낼 차례였다면접에서 자기소개는 눈감고도 할 수 있을만큼 어느새 면접에 익숙해진 나였다. 나름의 면접 질문 노트도 꽤 튼튼하게 만들어놓은 상태라 어느 정도 질문에는 대답을 할 수 있을 정도였다. 소위 네카라라고 부르는 세 기업에 모두 면접 기회가 주어졌다. 전부는 아니더라도 한 곳만이라도.. 2025. 3. 31.
[비전공자 개발자 취업 성공기] 2편 - "비전공자에게 CS는 너무 어려웠다. 그래도 방법은 있었다" "비전공자에게 CS는 너무 어려웠다. 그래도 방법은 있었다"단단히 잘못되었던 착각나는 코딩테스트만 준비했을 뿐, 나머지는 그 어떠한 것도 제대로 준비하지 않고 필기 테스트와 면접을 보았다. 모든 회사에서 탈락을 했고, 그때마다 나는 나에게 필요한 것, 내가 더 준비해야되는 것이 무엇일까 생각했고 메모했다. 그러면서 내가 새롭게 깨달은 것은 전체 채용 프로세스에서 코딩 테스트 비중보다는 그 이후에 진행되는 프로세스의 비중이 훨씬 더 어렵고 큰 비중을 차지한다는 것이였다. 그리고 IT 기업의 대부분의 면접은 인성 면접이 아니고 기술 면접이라는 것이였다. 기술 면접이라는 용어를 그때 처음 알게되었는데, 결국 내가 필요한건 CS 공부와 포트폴리오였다. 또 한번의 시련.. 그래서 뭘 준비해야돼?나는 비전공자였고 .. 2025. 3. 31.
[비전공자 개발자 취업 성공기] 1편 - "나는 알고리즘만 준비하면 될 줄 알았다" "6개월 동안 알고리즘만 팠다. 당연히 개발자가 될 줄 알았다. 그런데 나는 계속 떨어졌다." 졸업이 점점 다가오던 4학년 2학기. 이전 학기부터 생각만 해오던 것을 행동으로 옮기기 시작했다. 그것은 바로 개발자 취업 준비였다.비전공자 IT 취업을 결심하게 된 계기학교 과제로 코딩을 처음 접했을 때, 너무 복잡하고 어려워 과제를 척척 해내지는 못했지만 나에게 흥미를 가져다주기엔 충분했다. 코딩은 마치 재미난 퀴즈를 푸는 것과 같았다. 계속 에러가 나지만 좀만 고민하면 무엇이 문제였는지를 깨닫게 되고, 조금씩 나아갈 수 있게된다. 에러-> 고민 -> 해결 -> 다시 에러. 이 과정을 계속 반복하면 마침내 모든 퍼즐 조각이 맞춰지고 내가 의도한대로 코드가 잘 동작하게 된다. 코딩은 마치 거대한 예술 작품을 .. 2025. 3. 20.
[독후감] 자바스크립트+리액트 디자인 패턴 지은이: 에디 오스마니읽은 기간: 2025.2~3월 자바스크립트 디자인 패턴 쪽은 여러 디자인 패턴을 다루고 있으나 일반적인 패턴이 대부분이고 클래스 문법을 써서 그런지함수형 컴포넌트를 주로 다뤘던 나에겐 엄청 유용하다고 느껴지지 않았다.  MVC, MVP, MVVM 패턴을 비교하는 장에서는 말이 모호하여 이해가 어려웠지만 추가 검색을 통해 차이를 조금이나마 느껴볼 수 있었다. 비동기 프로그래밍 패턴에서는 재시도 같은 예시는 써먹을만 했다. 리액트 디자인패턴은 초반은 너무 Hooks가 등장하기전에 쓰던 방식들이라 실용성이 없다고 느껴졌고, Hook 패턴도 딱히 새로운 내용은 없었다. 렌더링 패턴은 CSR, SSR 차이를 다시 한번 짚고 넘어갈 수 있었다.  기대만큼 배워갈게 많다고 느껴지지는 않은 책이다. 2025. 3. 17.
[Javascript] MVC, MVP, MVVM 간단히 비교하기 MVC전통적인 방식뷰에서 모델을 직접 참고함 -> 뷰에서 렌더링 시 모델의 정보를 사용컨트롤러는 뷰로부터 이벤트를 받아서 모델을 업데이트 해주는 역할// Model (데이터 및 로직 관리)class Model { constructor() { this.text = "Hello, MVC!"; } updateText(newText) { this.text = newText; }}// View (UI, Model 직접 참조)class View { constructor(model) { this.model = model; // ✅ View가 Model을 직접 참조 this.button = document.createElement("butt.. 2025. 3. 6.
[Javacript] 동기와 비동기, 이벤트 루프와 태스크 큐 동기 처리코드를 순차적으로 실행하는 방식앞의 작업이 완료될 때까지 다음 작업은 실행되지 않고 대기함직관적이고 코드 흐름을 이해하기 쉬우나, 오래 걸리는 작업이 전체 프로그램을 차단할 수 있음console.log("A");function syncTask() { for (let i = 0; i 비동기 처리특정 코드의 실행이 끝날 때까지 기다리지 않고 다음 코드를 즉시 실행하는 방식오래 걸리는 작업(네트워크 요청, 타이머 등)을 백그라운드로 넘기고, 그동안 다른 작업이 실행됨코드 흐름이 멈추지 않아 전체 프로그램의 성능이 향상됨console.log("A");setTimeout(() => { console.log("B");}, 1000); // 1초 후 실행console.log("C");// 출력 결과://.. 2025. 2. 23.