전체 글 163

스트레스 관리: 나를 리팩터링 해서 스트레스 관리하기

스트레스 관리는 왜 필요할까? 갑작스러운 일이 발생하거나 정보 과부하가 생길 때 스트레스를 받곤 하지 않는가? 나는 계획형이고 신중한 성격이라 익숙하지 않는 갑작스러운 일이 발생하면 스트레스를 받곤 한다. 그리고 정보 과부하가 생기면 판단력이 흐려지곤 했다. 질병관리청에서 스트레스는 정신질환의 하나로 보고 있다. 사람은 스트레스를 받으면 판단력이 흐려지고 그만큼 본인의 능력치 만큼 발휘를 못한다. 즉, 스트레스 받는 지점을 줄이면 그만큼 업무 효율이 증가한다. 스트레스 줄이기 단순하고 반복적인 작업 줄이기 단순하고 반복적인 작업은 소모적인 작업이라 줄이면 스트레스 개선에 도움을 준다. 나는 코드의 네이밍은 Refactor 기능을 활용했었고, 자주 사용되는 코드는 Live Template 기능을 활용해서 ..

내 커리어를 위한 업무 이력 관리

업무 이력 관리는 왜 중요할까? 내가 다녔던 직장에서는 매년 말에 업무 성과를 작성하고 고과를 평가했다. 다음 연초에 고과가 발표 나고 고과에 따라 연봉 향상률과 다음 진급 기회가 달라졌다. 1년 차 때는 아무것도 몰라 작성할 시기에 생각나는 데로 작성했다. 나는 좀 더 성장하고 싶었고, 진급과 전문성 레벨 업그레이드를 하면 더 많은 역할이 주어지기 때문에 매달 업무를 기록하고 구체적으로 작성하려고 노력했다. 모든 것이 이 영향은 아니겠지만 9년 차 때까지 2번 조기 진급하고, 시니어로 직무 레벨을 업그레이드했다. 이젠 그동안 있었던 경험을 공유해 보고자 한다. 조직장은 나를 얼마나 알고 있을까? 내 업무 성과를 평가하는 조직장은 생각보다 내가 무엇을 잘하고, 어떤 성과를 냈고, 어떤 커리어를 가지고 싶..

면접 이후 합격 판단 포인트

면접 이후에 지원자를 합격 또는 불합격 시킬지 결정하게 된다. 이때는 같이 면접에 참여한 면접관이나 조직장이 납득할 수 있는 이유를 함께 정리해야 한다. 신입/인턴 지원자와 경력 지원자를 두 가지를 나눠서 정리해 봤다. 신입/인턴 지원자 판단 포인트 신입/인턴을 채용할 때는 지원자가 업무 경험이 부족하기 때문에 역량과 인성으로 판단한다. 판단 포인트는 다음과 같다. 개발 역량이 좋은 사람인가? 학습한 것을 봤을 때 빠른 성장성이 기대되는 사람인가? 활동들을 봤을 때 도전적이고 성공 가능성이 높은 사람인가? 프로젝트를 할 때 주도적인 사람인가? 경력 지원자 판단 포인트 경력 지원자를 채용할 때는 지원자가 업무 경험이 있기 때문에 대체로 실제로 동료가 되었다고 가정하고 판단한다. 판단 포인트는 다음과 같다...

기술 면접 프로세스

채용이 빈번하게 발생하는 회사에서는 기술 면접 프로세스가 잘 갖춰져 있고, 채용에 참여하는 인원도 많아 기본적으로 전파교육을 하기도 한다. 반면에 스타트업이나 중소기업같이 규모가 작은 회사에서는 소수 인원으로 채용이 진행되며, 프로세스가 없어 신규 인력에게 전파교육이 진행되지 않은 경우도 있다. 이 포스트에서는 면접관 입장에서 기술 면접 프로세스와 목적 그리고 면접 진행자 입장에서 스크립트를 담았다. 프로세스와 목적 1. 면접 과정 안내 원활한 대화를 위한 아이스브레이킹 과정이다. 대략적인 면접 과정 설명으로 모든 참여자가 같은 맥락을 생각할 수 있게 한다. 2. 지원자 자기소개 대부분은 이력서에 있는 자기소개와 동일하여 자기소개를 듣는 것 자체의 의미는 적다. 자기소개는 자기소개를 기반으로 질문을 자연..

면접 질문 준비하기

좋은 면접은 자유 토론과도 같아야 한다. 소프트웨어 개발과 관련하여 지식과 정보를 교환하고, 기술/도구/방법론들에 대해서도 의견을 나누어야 한다. 우리의 핵심가치는 무엇인가? 우리에게 필요한 주요 기술을 무엇인가? 더 잘하고 싶은, 더 나아지고 싶은 것들은 무엇인가? 새로운 사람을 채용하기 전에 이러한 질문들에 스스로 대답을 준비해야 한다. 소프트웨어 장인 | 산드로 만쿠소 저/권오인 역 | 길벗 | 2015년 09월 25일 질문 준비는 왜 해야 할까? 면접은 같이 일할 동료를 찾는 과정이다. 면접관은 지원자가 우리들에게 필요한 사람인지, 같이 일하기 좋은 사람인지, 동료들과 분위기가 잘 어울리는 사람인지 판단해야 한다. 그런데 막상 면접관이 지원자에게 질문을 몇 가지 못하거나 질문에 집중한 나머지 지원..

도서 리뷰 시리즈 - RxJs 퀵스타트

출처 『RxJs 퀵스타트』 | 손찬욱 저 | 루비페이퍼 | 2018년 07월 24일 한 줄 리뷰 RxJs를 시작할 때 꼭 봐야 하는 책 요약 서론 책을 쓰면서 RxJS는 왜 만들어졌고, 또 어떤 철학 배경으로 RxJS가 탄생했는지를 찾아가다 보니 결국 RxJS를 어떻게 써야 하는 지 자세히 알게 되었다. 또한 RxJS를 왜 써야 하는 지도 더욱 분명해졌다. 개발을 처음 시작할 때는 요구사항을 어떻게 구현할지 구현 자체에만 초점을 맞추게 된다. 하지만 경험이 쌓이기 시작하면 구현보다는 얼마나 효과적으로 유지보수할 수 있을 지 또는 얼마나 많은 문제점을 설계나 테스트 코드를 통해 사전에 해결할 수 있을 지 고민하게 된다. 그래서 우리는 자연스레 기존 문제들을 해결하기 위해 고심했던 라이브러리, 디자인 패턴들..

도서 리뷰 시리즈 - 함수형 자바스크립트 | 마이클 포거스

출처 『함수형 자바스크립트』 | 마이클 포거스 저 / 우정은 역 / 정경석 감수 | 한빛미디어 | 2014년 02월 01일 한 줄 리뷰 함수형 프로그래밍에 대해서 좀 더 깊이 있는 지식을 원하는 개발자에게 추천합니다. 1. 함수형 자바스크립트 소개 함수형 프로그래밍 시작하기 함수형 프로그래밍은 다음과 같은 한 문장으로 설명할 수 있다. 함수형 프로그래밍은 값을 추상화의 단위로 바꾸는 기능을 하며 결국 바뀐 값들로 소프트웨어 시스템이 만들어진다. 함수형 프로그래밍이 중요한 이유 객체 지향 프로그래밍의 목표는 문제를 부분으로 잘게 나누는 것이라는 것을 동의할 것이다. 부품이 모여서 더 큰 부품이 될 수도 있고, 부품과 부품 집합을 이용해서 부품의 상호 동작과 값으로 시스템을 표현할 수 있다. 엄격한 함수형 ..

도서 리뷰 시리즈 - 함수형 자바스크립트 | 루이스 아텐시오

출처 『함수형 자바스크립트』 | 루이스 아텐시오 저/이일웅 역 | 한빛미디어 | 2018년 02월 01일 한 줄 리뷰 함수형 자바스크립트를 처음 시작하는 개발자에게 추천합니다. 요약 서론 코드가 복잡해지지 않게 하려면 어떻게 해야 할까요? 복잡성을 다스리는 비결은, 코드베이스의 크기가 커질수록 복잡성이 증가하지 않도록 붙잡아 두는 것입니다. 바로 여기서 함수형 프로그래밍이 요긴하게 쓰이지요. 자료구조는 적게, 일은 더 많이 어플리케이션의 제어 흐름 프로그램이 정답에 이르기까지 거치는 경로를 제어흐름이라고 합니다. 명령형 프로그램은 작업 수행에 필요한 전 단계를 노출하여 흐름이나 경로를 아주 자세히 서술합니다. 보통 작업을 수행하는 단계는 루프와 분기문, 구문마다 값이 바뀌는 변수들로 빼곡히 들어찬다. l..

도서 리뷰 시리즈 - 클린 소프트웨어

출처 『클린 소프트웨어』 | 로버트 C. 마틴 저 / 이용원, 김정민, 정지호 공역 | 제이펍 | 2017년 05월 15일 한 줄 리뷰 설계를 처음 시작하는 개발자에 추천합니다. 에자일 설계 설계의 악취 소프트웨어에 다음과 같은 느낌이 든다면 소프트웨어 재설계가 필요한 것을 알 수 있다. 부동성 다른 시스템에 재사용할 수 있는 컴포넌트를 구분하기 어려울 때 경직성 시스템을 변경하려면 시스템의 다른 부분들까지 많이 변경이 필요할 때 취약성 시스템을 변경하면 그 부분과 개념적으로 아무런 관련이 없는 부분이 망가질 때 점착성 변경 사항이 발생했을 때 설계를 유지하기 어려워 옳은 동작을 하기 어려울 때 불필요한 복잡성 현재 시점에서 필요하지 않은 설계가 포함이 되어 있을 때 불필요한 반복 단일 추상 개념으로 통..

도서 리뷰 시리즈 - 일하는 방법을 제대로 배운 건 처음입니다

출처 『일하는 방법을 제대로 배운 건 처음입니다』 | 미즈노 마나부 저/고정아 역 | 더퀘스트 | 2020년 03월 12일 한 줄 리뷰 연차는 쌓이는데 실력이 느는 것 같지 않다면, 열심히 하는 것 대신 잘하고 싶다면 이 책을 추천합니다. 요약 챕터 1. 목적지부터 정하자 이 챕터에서는 일을 시작하기 전에 그 일의 목적과 목표를 명확하게 정하고, 시각적으로 공유하는 방법을 설명합니다. 또한, 일의 결과가 미래에 어떤 영향을 미칠지 상상하고, 타깃의 해상도를 높이는 방법을 알려줍니다. 챕터 2. 목적지까지 가는 지도 그리기 이 챕터에서는 모든 일에는 루틴, 즉 습관이 있으며, 루틴을 만들어야 여유가 생긴다고 말합니다. 또한, 일의 방향성을 정하는 콘셉트와 일을 시작하기 전에 알아야 할 기본적인 지식에 대해..

불변 자료구조와 영속 자료구조

불변 자료구조 Immutable Data Structures 불변 자료 구조는 영원히 변하지 않는 상태를 말합니다. 변화가 필요할 때 새로운 상태를 만들어 내고 값을 변경합니다. JSON 클론을 사용한 예시 const clone = obj => JSON.parse(JSON.stringify(obj)) const obj = { message: 'Hello World', inner: { count: 1 } } const clonedObj = clone(obj); console.log(obj === clonedObj) // false console.log(obj.inner === clonedObj.inner) // false 영속 자료 구조 Pesistent Data Structures 영속성은 상태를 제거하..

모노레포의 정의와 기본 원리

모노레포의 정의 다수 프로젝트를 단일 형상관리 저장소에 저장하는 소프트웨어 개발 전략 모노레포 기본 원리: npm 심볼릭 링크 npm 심볼릭 링크를 통해서 같은 저장소에 있는 다른 프로젝트를 npm 모듈처럼 사용할 수 있다. npm 심볼릭 링크 만들기 Step 1. my-core 패키지 만들기 프로젝트 루트에 my-core 패키지를 만든다. $ mkdir my-core $ cd my-core $ npm init my-core 폴더 내에 index.js 파일을 만들고 다음과 같은 코드를 작성한다. module.exports = (a, b) => a + b Step 2. my-repo 패키지 만들기 프로젝트 루트에 my-repo 패키지를 만든다. $ mkdir my-repo $ cd my-repo $ npm..

728x90