GitHub 여러 계정에 각각 SSH 키 설정하는 방법

개인 프로젝트와 회사 프로젝트 등으로 GitHub 계정을 여러 개 사용하는 경우가 있습니다. 이럴 때 각각의 계정에 별도의 SSH 키를 설정하면, 좀 더 명확하게 계정을 구분하여 사용할 수 있습니다. ...

4월 20, 2025 · 2 분 · Sangheon Han

개발자의 학습

흔히 하는 말로 개발자는 평생 공부를 해야 한다고 합니다. 개발자로 일하는 20년 동안 이 말이 틀렸다는 생각은 한번도 든 적이 없습니다. 그만큼 개발자에게 학습은 뗄레야 뗄 수 없는 관계일 것입니다. ...

3월 11, 2022 · 7 분 · Sangheon Han

유니버설 링크 (Universal Links)

유니버설 링크(Universal Links) 앱에서 유니버설 링크를 지원하기 위해서는 apple-app-site-association(AASA) 파일을 작성해서 웹 서버에 올려두는 작업이 필요합니다. Apple JSON Metadata file iOS 12 이전 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "applinks": { "apps": [], "details": [ { "appID": "<TEAM_DEVELOPER_ID>.<BUNDLE_IDENTIFIER>", "paths": ["*"] }, { "appID": "<TEAM_DEVELOPER_ID>.<BUNDLE_IDENTIFIER>", "paths": ["/articles/*"] }, { "appID": "<TEAM_DEVELOPER_ID>.<ANOTHER_APP_BUNDLE_IDENTIFIER>", "paths": ["/blog/*", "/articles/*"] } ] } } 주의 사항 apps는 빈 배열이어야 합니다. 파일 이름은 json 확장자가 없는 apple-app-site-association이어야 합니다. 파일 위치는 http://foobar.com/apple-app-site-association입니다. iOS 13 이후 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 { "applinks": { "details": [ { "appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ], "components": [ { "#": "no_universal_links", "exclude": true, "comment": "Matches any URL whose fragment equals no_universal_links and instructs the system not to open it as a universal link" }, { "/": "/buy/*", "comment": "Matches any URL whose path starts with /buy/" }, { "/": "/help/website/*", "exclude": true, "comment": "Matches any URL whose path starts with /help/website/ and instructs the system not to open it as a universal link" } { "/": "/help/*", "?": { "articleNumber": "????" }, "comment": "Matches any URL whose path starts with /help/ and which has a query item with name 'articleNumber' and a value of exactly 4 characters" } ] } ] }, "webcredentials": { "apps": [ "ABCDE12345.com.example.app" ] } } 주의 사항 파일 이름은 json 확장자가 없는 apple-app-site-association이어야 합니다. 파일 위치는 http://foobar.com/.well-known/apple-app-site-association입니다. Apple JSON Metadata file Signing apple-app-site-association 파일은 Signing을 해서 저장해야 합니다. 여기서는 OpenSSL을 기준으로 기술합니다. ...

1월 12, 2021 · 3 분 · Sangheon Han

Docker를 이용한 개발 환경 구축하기

배경 여러 버전의 OS에서 돌아가는 여러 언어로 만든 시스템을 개발하려다 보니 개발 환경을 구축하는 것도 쉬운 일이 아닙니다. Vagrant도 사용을 해봤지만, 그렇게 획기적으로 편리하다는 인상은 못 받았습니다. 개발 환경을 배포하는 측면에서 좋았지만, 소규모 개발팀에서 배포를 위해 이미지를 빌드하는 과정이 오버헤드처럼 느껴졌습니다. ...

10월 19, 2019 · 8 분 · Sangheon Han

VIM: 배울 가치가 있는 에디터

개발자라면 누구나 자신이 주로 사용하는 에디터가 있다. 여기에는 간단한 편집 기능만 제공하는 것부터 디버깅, 버전 관리, 유닛 테스트, 리팩토링까지 지원하는 IDE까지 다양한 종류가 존재한다. 각자의 취향과 손에 익숙함에 따라 좋아하고 편리한 것이 있을 것이다. ...

4월 14, 2015 · 2 분 · Sangheon Han

내가 C 언어를 좋아하는 이유

베이직으로 프로그래밍을 배운 이후로 여러 프로그래밍 언어를 익혔다. 그 중에는 자격증이나 학점을 위해 배운 것도 있고, 순수히 개인적인 관심사를 위해서 배운 것도 있다. 요즘은 PHP로 밥벌이를 하고 있지만, PHP를 제일 좋아하는 것은 아니다. ...

3월 20, 2014 · 2 분 · Sangheon Han

PHP를 바라보는 관점을 바꿔보자

PHP는 다른 프로그래밍 언어와 달리 도구(Tool)로서 만들어졌다 프로그래밍 언어로 발달한 특이한 경우이기 때문에 PHP를 다른 프로그래밍 언어의 시각에서 바라보면 이해하기 힘든 측면이 많다. PHP가 어떤 관점에서 문제를 해결하기 위한 방법을 제공하는지는 초기의 PHP인 PHP/FI 소스 코드를 살펴보면 알 수 있다. ...

2월 25, 2014 · 2 분 · Sangheon Han

코드 한 줄의 최대 길이를 80자로 해야하는 이유

얼마 전 “‘다른 개발자는 어떻게 쓸까?’ 사소하고 재미있는 9가지 프로그래밍 관례“라는 제목의 흥미로운 기사가 올라왔다. 공감하기 어려운 것들도 있겠지만 세상 대부분 일이 그러하듯 많은 사람들이 선택하는데는 그만한 이유가 있기 때문이다. 그 중 좀 더 많은 개발자들이 공감하기 어려울 것 같은 코드 한 줄의 길이를 80자 이내로 하는 부분에 대해 내 생각을 적어보고자 한다. ...

2월 20, 2014 · 2 분 · Sangheon Han

취업/전업을 위한 프로그래밍 언어 배우기

개발자 커뮤니티에서 종종 볼 수 있는 질문 중 하나가 취업/전업을 하려는데 어떤 프로그래밍 언어를 배워야 하냐는 것이다. 이런 질문이 올라오면 많은 댓글이 달린다. 보통 개발자마다 각자가 좋아하는 프로그래밍 언어를 추천하는데, 그 때 마다 안타깝다는 생각이 든다. ...

1월 27, 2014 · 2 분 · Sangheon Han

C 언어 헤더 파일 간 의존 관계 빌드하기

C 언어로 개발하다 보면 헤더 파일들끼리 의존성이 생겨나는데, 그 수가 적을 때는 수동으로 Makefile에 적어도 되지만 많아질 경우 수동으로 하기는 곤란해진다. 이럴 때 gccmakedep이라는 도구를 사용하면 자동으로 이런 헤더 사이 의존관계를 처리 할 수 있다. 최근에는 gccmakedep이 없는 경우가 보통이라 gcc -M 옵션을 사용하는 것을 더 추천한다. ...

10월 8, 2013 · 1 분 · Sangheon Han