본문 바로가기

개발

(11)
vim을 대하는 자세 리눅스 텍스트 편집기 중 하나인 vim. 많이들 vim을 어렵고 외워야만 하는 것으로 생각한다. 이를 보다 쉽게 사용할 수 있게 해주는 vim을 대하는 자세, '대화'의 방법을 소개하고자 한다. Intro 글의 시작에 앞서, 글쓴이는 vim을 자유자재로 다룰 수 있는 실력자는 아니며, IDE로 개발을 진행한다. 단지 vim의 몇 가지 기능들을 큰 불편함 없이 사용하는 정도다. vim을 사용하는데 어려움을 겪는 분들에게, 내가 vim을 효율적으로 학습한 방법을 소개하고자 한다. 그것은 vim 텍스트 에디터와 '대화'를 하듯 하는 것이다. 이 글에서 설명하는 모든 기능은 Normal 모드(ESC를 입력한 상태)에서의 커맨드만을 다룬다. vim 에디터는 ESC를 누른 시점부터 입력한 키들을 기억하고, 모든 명..
.git 내부 구조 파헤치기 개발을 함에 있어 필수 요소가 된 git. 개발 과정에서의 수많은 커밋과 브랜치, 관리되는 파일의 정보들이 모두 .git 안에서 관리되는데, 그 내부를 파헤쳐 본다. 이 글은 git을 어느 정도 사용해보고 읽는 것을 추천한다. .git 내부 구조 .git 폴더의 내부 구조는 위 캡처와 같다. git의 작동원리를 이해하는 데 도움이 되는 부분들을 위주로 설명을 진행해 나간다. 생활코딩 이고잉님의 gistory 를 활용하면 쉽게 .git의 내부 파일들을 분석할 수 있으며, 이 글에서도 활용하고자 한다. /objects git에서 활용하는 데이터들이 저장되는 곳이다. tree 명령어를 실행시켜 보면 위와 같은 구조를 가진다. 2글자의 폴더 밑에 38글자의 파일명을 가지는 특이한 구조를 가진다. objects의..
의존관계 주입(Dependency Injection) 쉽게 이해하기 이번 글에서는 DI(의존성 주입, 의존관계 주입)의 개념을 설명한다. DI란 용어가 주는 위압감과 부담감 때문에 이해를 미뤄뒀거나, 처음 접하는 분들이 쉽게 이해할 수 있도록 쉽게 설명하고자 한다. DI 란 무엇인가 DI는 Dependency Injection의 줄임말로, 다양한 우리말 번역이 있지만, 이 글에서는 의존관계 주입이라는 말로 사용하고자 한다. 먼저 Dependency, 의존관계에 대해 알아보자. Dependency 의존관계란 무엇인가? "A가 B를 의존한다."는 표현은 어떤 의미일까? 추상적인 표현이지만, 토비의 스프링에서는 다음과 같이 정의한다. 의존 대상의존 대상 B가 변하면, 그것이 A에 영향을 미친다. - 이일민, 토비의 스프링 3.1, 에이콘(2012), p113 즉, B의 기능이..