ash84.io

즐거운 엔지니어 생활

Payhere Head of Technology (전 CTO·공동창업자), 전 뱅크샐러드 테크리드. 개발 노트와 회고, 그리고 에세이와 삶.

posts
970
since
2007
commits
last write
2026-08-08
2025/
2025 회고
claude에게 캘린더 연결하고 회고 해달라고 했는데 생각보다 잘 안되고 별로라서(opus 4.5) 내가 직접 하는게 나을
인텔 맥북 개발서버로 세팅하기 | Setting Up an Intel MacBook as a Development Server
지금은 M1 맥북에어가 사실상 주력기기로 사용하고 있는데, 이전에는 인텔 맥북프로를 주로 사용했었다. 자세히 모델은 기억나지
마인크래프트 docker로 서버띄우기
발단 애들이 마인크래프트를 좋아하는데 iOS 기기로 둘이서 하려다보니 둘다 마이크로소프트 계정이 있으면 한쪽에서 한쪽을 초대해서
우리에게 그렇게 많은 소프트웨어가 필요한가?
Akiflow를 잘 써오고 있었다. 확실히 좋은 툴이고 현대의 IT기업에서 주로 사용하는 툴들을 개인의 일정안에서 관리 할
이 블로그는 마크다운 기반 정적 블로그로 전환되었습니다.
몇일 전에 Notion API를 이용해서 노션의 글을 블로그에 자동으로 연동하는 얘기가 나와서 찾아보다가, 개인 블로그를 개편하고
우린 더 나아질 수 있을까?
오늘은 굉장히 기분이 안좋았다. 그냥 모든것을 그만두고 싶었다. 아니 이건 이 글을 쓰는 지금도 진행중이다. 의무와 책임인것도 알고 몇년간 이런 역할들을 도맡아 왔지만 오늘의 이 기분이 더 나쁜건. 더 나아질 수 있다는 생각이 들지 않기 때문이다.
서비스와 데이터
세상의 모든 것이 SaaS(Software as a Service) 형태로 변화하고 있다. 문서 작성, 디자인, 개발, 데이터 저장, 심지어는 개인 블로그와 글쓰기 툴들까지도 SaaS 기반 서비스들이 대세를 이루고 있다. SaaS의 장점은 분명하다. 설치할 필요 없이 즉시 사용할 수 있고, 유지보수를 신경 쓸 필요 없이 최신 기능을 누릴 수 있다. 하지만 이와 동시에 우리가 만든 데이터와 서비스의 소유권이 우리 손을 떠나는 문제도 존재한다.
Akiflow 도입 및 활용후기
리더로써 일을 하면서 생산성 향상에 전 직장에서부터 고민이 많았다. 그때 읽었던 책이 [MakeTime](https://link.coupang.com/a/ccn0Lj)이라는 책이었는데, 하루에 가장 중요한 한 가지 일(Task)을 완수하라는 내용으로 지금까지도 이 내용을 지키고 있다. 하지만 CTO, Head of tech로 일을 하면서는 정말 정신없이 일을 하게 되었다. 특히 회사/도메인의 특성상 스타트업이고, 고객들로부터 빠르게 요청을 처리해야하는 경우도 있다보니 정신이 없었고 일이 정리가 안되는 느낌이었다. 그래서 좀 더 실
2024/
2024 회고
# 건강
나의 3세대 키보드
개발자를 하면서 그리고 글 쓰는 것을 좋아하기 때문에 키보드를 자주 쓸수 밖에 없다보니 그리고 앞으로 무슨일을 하더라도 키보드는 계속 쓸 것 같고, 키보드에 대한 관심은 계속 있을것 같아서 이렇게 글 을 써본다. 아마 이 글은 계속 업데이트되는 식으로 되지 않을까 싶다.
PyconKR 2024
가야할까 말아야할까를 고민하다가 신청을 했다. 왜냐하면 개인적으로 백엔드 개발 작업을 예전에 비해서 많이 하고 있지 않고, 회사에서도 주 언어를 python/django에서 kotlin/spring으로 옮기는 작업을 하면서 파이썬에 대한 접촉이 조금 덜 해졌다. 하지만 이번에 참석하고 든 생각든 코엑스든, 수원이든 설령 나중에 더 멀리 부산이나 제주도에서 열리더라도 이제는 파이콘을 나는 계속 갈 것 같다. 조금 더 내 스스로 가벼워진 것 같다. 처음의 파이콘은 내 밥벌이 도구로써 더 잘 알기 위해서 최신의 트렌드와 베스트 프렉티스를
그랑메종도쿄로 보는 스타트업
그랑메종도쿄를 넷플릭스에서 최근에 시청을 했다. 개인적으로 기무라 타쿠야의 드라마를 좋아했었는데, 간만에 보게 되어서 재밌었다. 뻔한 클리셰들이 있긴 했지만 요즘은 그런것들을 느끼기가 쉽지 않아서 더 새롭게 느껴졌던것 같다. 요리라는것 자체에 관심이 있기도 하지만, 그랑메종도쿄를 보면서 새롭게 드는 생각은 스타트업의 여러부분과 비슷한 부분이 있어서 더 공감이 갔던것 같다. 이 드라마는 미슐랭 3스타를 받기 위해서 그랑메종도쿄라는 프렌치 레스토랑을 도쿄에 만드는 과정, 그리고 미슐랭 3스타를 받기 위해서 성장하는 과정들을 그리고 있다
시간과 나이와 경험과 추억
시간의 흐름, 나이의 듦
2024 여름휴가
여름휴가라고 붙이는게 맞을지 모르겠지만 8/23일 금요일 연차를 내고 주말이랑 이어서 강원도 평창에 왔다. 평창에 있는 휘닉스 파크에서 아내가 패키지 특가가 있어서 예약을 약 한달전에 했었다. 금요일은 사실상 늦게 떠나서 평창에 거의 5시가 넘어서 도착했지만 중앙에 있는 휘닉스 파크 잔디밭에 들어서자 5년전에 왔던 그 기억들이 새록새록 났다. 넓게 펼쳐진 잔디, 뛰어노는 아이들, 아주 덥지도 아주 많은 바람이 불진 않지만 송글송글 맺히는 땀을 느끼면서 5년전을 내 몸이 기억해냈던것 같다.
AI를 통한 셀프서비스의 시대
chatgpt4o를 나오자마자 결제를 했다. 한달에 29,000원, 사용하는 saas 서비스 중에서 가장 비싸다. 근데 한번도 사용하면서 비싸다는 생각을 해본적이 없다. 개인 비서 한명 원격으로 채용을 해도 이것보다는 비싸긴하다. 오히려 비슷한 시기에 계속 가격을 올리고 동의해달라고 팝업으로 계속 뜬 유튜브 프리미엄을 해지했다.(유튜브 뮤직은 애플뮤직으로 변경해서 잘 사용하고 있다.)
꿈과 돈 요약
니시노 아키히로의 책 에 대한 요약이다. 추천하는 이유는 쉽게 읽히고 상품과 마케팅에 대해서 직접 해본것들을 바탕으로 써서
24년 4월-5월 회고
6월되어서야 회고를 쓰는게 나태해졌다는 생각이 들면서도 어쨋든 바쁘게 살아서 회고 쓸 시간도 없지 않았나 싶다. 거두절미하고 몇가지 적어보자면
tidy first를 읽고 난 생각과 감정들
나중에 다시 보기 위해서 책에 있는 문장들을 그대로 가져온 부분이 있기 때문에 읽고 있는 분, 혹은 읽을 예정인 분들은 보지 않으시길 추천합니다.
untitled
백엔드 회식이 끝이나고 3차를 갔다가 새벽 3시가 넘어서 집에 들어왔는데 오히려 취하지 않고 정신이 또렷해지면서 지금의 감정과 생각들을 이렇게 쓰지 않으면 견딜수 없을것 같아서 이렇게 써 내려간다.
24년 3월 회고
# 달리기
brave - 패도의 길
패도의 길을 가야한다. 그래야 원하는 것들을 이룩할 수 있다. 그럼 내가 왜 그것을 해야하는가? 왜 그런 위험을 감수해야하는가? 이유는 2가지이다. 하나는 꽤 괜찮은 회사를 만들고 싶은것 그리고 다른 하나는 내가 그 길을 원하기 때문이다. 다른 걸 다 차지하고, 최종적으로는 내가 그 길을 원하기 때문이다.
24년 2월 회고
## 테크세미나
개발자를 위한 마크다운 기반의 발표툴 - deckset
# 도입 계기
명확한 디렉션
일을 맡기고 위임하게 되었을때 혹은 일을 전달하게 되었을 때 내가 원하는 방향과 다르게 나오거나 결과가 다르게 진행되는 경우들이
24년 1월 회고
1년치를 회고 할게 아니라 1달마다 회고를 해야한다는 트위터에서의 글을 보고 올해부터는 1달 단위로 회고를 해보고자 한다.
스타트업과 완결성
완결성
2023/
2024 부스러기
부스러기는 매일 매일 약간의 감정과 있었던 일들을 기록합니다. 😙 순서는 최신순" 2024-03-01 토리야마 아키라가
2023 회고
올해도 어김없이 회고를 쓴다. 사실 회고를 쓰는 이 12/17일에 여러가지 부분에서 회복이 많이 되진 않았고, 지침과 힘듦이
성실함이라는 재능
성실하다는 것은 사전전인 의미는 정성스럽고 참됨을 의미한다. 예전에 내가 가장 많이 들었던 단어가 성실하다는 것이었다. 직장생활 전 학교시절부터 들어왔으니 꽤 오래 되었다.
10월 2일 영화 3편 기록
아이들이 태권도장에서 하루종일 에버랜드에 간다는 사실은 10월 1일 들었다. 오전9시부터 오후 9시까지. 베스트펜에가서 만년필을 찾아 볼까 행각했지만 남부터미널역까지 왔다 갔다 하는 시간이 아까웠다. 그래서 생각한게 집 근처 왕십리 CGV에서 영화를보자! 아주 알차게!
MVP의 늪
두번째 스타트업을 다니면서 그리고 초창기부터 시리즈C까지 경험하면서 제품을 만드는 과정에서 느낀 부분이 있다. 아직까지 답을 찾지는 못한 부분이지만 개인적으로 안타까움에 글을 써 내려가본다.
PyconKR 2023 파이콘 후기
## 후원사로의 후기
조금 더 나은 힘듦
트위터에 썼던 스레드 3개짜리 글인데 좀 더 길게 내 생각을 정리해본다. 이제 스타트업을 한지 3년차가 되다보니 회사가 성장하고
everything
요즘들어 사람들과 애기해보면 어떤것을 해야하는가? 어떻게 성장해야할까요? 라는 애기들을 많이 든는다. 조언이랍시고, 모르는
피그인더가든 메뉴 취향찾기(draft)
개인적으로 샐러드를 좋아하는데, 회사 근처에 피그인더가든이라는 샐러드 맛집이 있어서 가봤다. 여러가지 메뉴가 있겠지만 그 전까지는 파워볼샐러드만 먹었는데 이제 한개씩 다 먹어보면서 취향을 찾아보려고 한다. 이 글에서는 먹어보는대로 덧붙이는 방식(append)으로 메뉴별로 붙여나갈 예정이다.
[책] 개발자로 살아남기
이 책을 다 처음부터 끝까지 다 읽지는 못했고, 읽었던 부분에서 기억에 남는 부분을 발췌해서 사견을 기록한다. 테크니컬 리드
2023 1분기 회고
매년 연말회고를 했었는데 시간이 참 빠르게 가는것 같아서 분기별 회고를 올해부터는 해보려고 한다. 지극히 개인적인 내용들일것
퇴사의 과정에 지켜야 하는 것들
퇴사들을 보면서 나도 많이 퇴사를 해봤기에 여러가지 생각들이 든다. 몇가지 내가 퇴사를 할때의 원칙들을 적어본다.
[책] 초격차(draft)
초격차
블로그 기능 업데이트 히스토리
### History
[책] high output management(draft)
title
[책] 10x Rule
- 다음 단계로 도양하려면 지금까지와는 완전 다른 방식으로 생각하고 행동해야한다.
회사란 무엇인가?
회사란 무엇인가? 에 대한 생각들 정리
주어진 권리(draft)
주어진 권리에 대해서 생각해본다.
2022/
2022 회고 : 39→40
거창하게 1년 회고를 하자니 쉽지가 않다. 개인적으로 39살이라는 점에서 더 감회가 새롭고 이 글을 써 내려가기가 두려운것
API 문서 없음.
자극적인 제목으로 어그로를 끌어봤다. 그렇지만 이 제목은 내 감정에 비하면 새 발의 피다. 작년과 올해 일을 하면서 API
PyCon Korea 2022 후기
작년 파이콘은 온라인으로 열려서 그런지 그다지 신청을 하진 않고 따로 동영상만 챙겨봤는데 올해는 오프라인 모임도 열린다고 해서
TechAssemble를 마치고
다리가 풀리고 무릎이 너무 아파왔다. 2시간 동안 사내 백엔드/프론트 개발자, 보안, 데이터 엔지니어링분들과 이야기를 하는 시간을 가졌는데 계속 이야기를 하고 이야기를 끌어 낸다는 것이 얼마나 힘든 일인지에 대해서 알 게 되었다.
python static method vs. class method
사내에서 파이썬 코드를 짜다보면 static method와 class method를 혼용해서 사용하는 경우가 개인별로 있었는데 이 부분에 대해서 개인적으로 조사를 해서 전달할 기회가 있었다. 파이썬 책도 많이 봤고, 공식 레퍼런스도 봤지만 대부분 사용법에 대해서 애기가 대체로 있고, 언제 두개를 구분해서 사용해야하는 지에 대해서는 나와있지 않아서 몇개의 레퍼런스를 정리해봤다.
시간이 아니라 수준에 맞추기
스타트업에 있다보면 이런 이야기들을 많이 한다. 52시간을 넘어서 근무를 해야한다. 성장을 위해서 야근을 해야한다. 주 80시간
divide and conquer
제목이 분할정복 알고리즘인데 사실 알고리즘에 대한 이야기를 하려는 것은 아니다. 개발자를 하면서 여러가지 알고리즘들이 있지만
nexters 컨퍼런스 - 개발자커리어 : 두려움이 이끄는대로
Nexters Conference에서 발표를 했다. 뭔가 커리어에 대해서 애기한다는게 여전히 어색하긴 한데, 그래도 조금이나마 나와 같이 꼬인 경력, 혹은 물경력이라고 자조하시는 분들에게 도움이 되고 싶었다.
중쇄를 찍자 리뷰
중쇄를 찍자는 넷플렉스에 얼마전에 올라온 일드를 봤다. 사실 그 전에 이 작품(드라마인지, 만화인지 모르겠지만)에 대해서 트위터에서(역시 트위타..) 재밌다는 의견들이 있었고 그런게 있구나.. 로만 지나쳤는데 이번에 넷플렉스에서 보면서 재밌게 봤던것 같다.
2021/
2020/
2020 회고
2020년 이글을 쓰는 시점은 12월 30일이라 올해가 가기 전에 회고를 해보려고 한다. 올한해 아쉬웠던 점은 나 뿐만 아니라 모든 사람들이 그렇겠지만 코로나로 인해서 우리의 생활들이 그리고 [계획했던 것](https://ash84.io/2020/01/20/goal-for-2020/)들을 많이 이루진 못했다. 특히 올해는 PyconUS2020을 가기 위해서 행사 티켓 뿐만 아니라 비행기, 호텔 그리고 휴가 계획까지 모두 거기에 맞춰있었는데 못 가게 되었고, 이 컨퍼런스 뿐만 아니라 국내에서 진행하는 컨퍼런스들도 모두 유투브로 시청해
포도는 어떻게 되었을까?🍇
[이전 글들](https://ash84.io/2020/04/26/sub-character/)에서 포도나무를 심고 주말마다 가꾼 부캐의 썰을 풀었는데, 그 이후 포도는 어떻게 되었는지에 대해서 애기하려고 한다. 우선 잡초를 뽑는 것 이상으로 생각보다 할 일이 많다는 것을 깨닫게 되었다. 사실 그냥 심어보자는 무계획적인 부분이 많았고 전문적으로 포도재배에 대해서 공부한 것도 아니여서 부족한 부분이 많았고 그런 부분들은 그때 그때 몸으로 때웠다.
우리에겐 그라운드 룰이 필요하다.
[부캐의 일상](https://ash84.io/2020/04/26/sub-character/)은 계속 진행 중인데, 보통
부캐의 일상
코로나로 인해서 재택근무를 하고 있던 2월 말 3월부터 가장 힘들었던 것은 집에서 일을 하는 것이 아니라, 어린이집, 유치원을
drone.io - server 설치하기
최근에 drone.io 를 사용할 일이 있었는데, 생각보다 자료가 없어서 이번에는 server 구성에 대해서 다루고 다음 글에서는 agent 에 대해서 다룰 예정이다.
원격근무를 시작하다. 🏡
회사에서 원격근무(리모트) 를 하게 되었다. 전체가 다 하는 것은 아니고 일부 선발대 같은 느낌으로 뽑히게(?) 되어서 1~2월 하고 있다. 사실 나는 집-직장의 거리가 꽤 먼 편으로 약 `2시간` 정도 걸리고 있다. 여러 발표에서도 말했지만 원래 30분 거리의 회사를 다니다가 이직을 하게 되었고, 회사가 여의도로 오면서 멀어지게 되었다. 처음 1년 동안 여러가지 루트와 교통 수단을 통해서 출퇴근 거리/시간을 단축해 보려고 했다. 자차를 가지고 다니기도 했는데 야근을 할게 아니라면 결국 `양재` (라고 쓰고 지옥이라고 읽는다.) 에
객체지향 사실과 오해를 읽고.
객체지향이라는 말은 어떻게 보면 올드스쿨이다. 함수형 프로그래밍과 대척점에 있어 보이기도 하고, 객체지향 == 자바라고 느껴지기도 하니 말이다. 어떻게 보면 이 책은 그런 생각들이 오해였고, 사실에 대해서 설명해 주는 책이라는 생각이 들었다.
dnsperf 로 dns서버 성능 측정하기
요즘 DNS 에 대해서 관심을 많이 가지게 되었는데 😂 domain name system 은 도메인 이름을 ip 로 바꿔주거나 그 반대의 역할을 하는 것으로 알고 있다. 일반적으로 AWS Route53, google dns(8.8.8.8, 8.8.4.4) 이 이런 역할을 하는 것으로 보면 된다.
어쩌다 토론토 🍁
덜컥 작년에 PyCon US 2020 을 예매를 했다. 1월부터 계속 아내가 왜 비행기표를 예약 안 하냐고 계속 물어봤다.
Rust-DAY2
TestCase 를 작성해보자. #2 - 원래 프로젝트는 대략적인 구조는 이런식이었다. ``` ├── Cargo.lock
2020년 목표 🎁
1월의 목표를 2020년 목표를 만드는 것으로 잡았다. 나도 사람인지라 1월이면 목표와 계획에 대한 뽐뿌가 오고 과도한 다이어트의
nginx header module
```shell
내 블로그에 emoji 를 구해줘😱
사실 난 예전에는 블로그 글에 emoji를 잘 쓰지 않았다. 여러가지 이유가 있겠지만 딱딱하게 정보만 전달하자는 의미도 있었고
Rust-DAY1
![sun](https://live.staticflickr.com/65535/49351849271_1a8164bbd0_z.jpg)
2019/
ngrok 를 이용한 localhost 를 public domain 연결하기
테스트를 하거나 아니면 인증 쪽 관련 작업들을 하려고 하면 localhost 에서 띄우면 되는데 도메인이 필요한 경우들이 있다. 예를 들면 github 에서 webhook 테스트를 한다고 할 때 도메인을 입력해야 github 상에서 이벤트가 발생했을 때 webhook 을 받을수 있다. (github 입장에서 localhost 는 자기자신이니..😅) 또는 모바일과 연동 테스트를 진행할 때도 도메인을 만들기 전이나 실서버 올리기 전에 임시로 테스트를 하기 위해서도 유용할 것 같다. 😙
2019 연말정산
되게 간만에 연말정산 글을 써 본다. 지금이 아니고 12월 20여일이 넘어가면 연말 행사들로 인해서 정신이 없을 것 같아서 후다닥 쓰는 겸도 있지만 한번 올해를 생각나는 대로 정리해 보고자 한다.
Kotlin Enum from Value
**Enum 은 소중하다. 왜냐하면 문자열 데이터에 대한 유효성 검증을 해주기도 하고 enum 의 이름 자체로 의미를 부여하기 때문이다.** 최근에 kotlin 으로 서버를 개발하던 중에 kotlin xnum 관련해서 불편한 부분을 겪었다. 아래의 코드 같은 부분인데:
한국대학생IT경영학회 발표
한국대학생 IT경영학회에서 요청이 와서 개발자에 대해서 소개해주는 시간을 가졌습니다.
6개월 기다린 키보드 후기
꽤 오래전에 용산역 4번 출구였나 그쪽 근방의 가게에 가서 1시간 동안 만져보고 거금 36만원을 주고 리얼포스 87u 를 사서 지금까지 쓰고 있다. 사실 이 키보드는 정말 너무 좋아서 주 코딩업무를 사용할 때 사용하고 이직을 해도 회사에 가져가서 쓰는데 개발자인 나에게 있어서는 리얼포스는 가장 중요한 무기다.
ktlint, build.gradle.kts 적용하기
kotlin lint 를 검색하면 [ktlint](https://ktlint.github.io/#getting-started) 를 찾을 수 있다. 그런데 gradle 로 적용하려면 총 3개의 repository 를 추천해주고 있다.
python LDAP, ldap3 연동
LDAP 자체는 정보를 제공하는 시스템이라서 로그인, 토큰이라는 개념이 없어서 id, password 를 넣어서 정보를 조회하고, 조회가 되면 로그인이 되었다는 것으로 인식해서 이를 연동하는 시스템에서 자체적으로 토큰을 발급해야 한다. python 에서 LDAP 을 연동하는 방식은 python-ldap, ldap3 라이브러리를 사용하는 것인데, 아래와 같이 ldap3를 사용하면 된다.
ifkakao2019 참석후기
사실 ifkakao 에 신청했다가 떨어졌는데, 사내에서 표를 주신 분이 있어서 가게 되었다.(감사합니다!!) 1일차와 2일차가 조금 다른 성격을 지니고 있었는데, 서버/백엔드 엔지니어인 나에게는 1일차가 더 좋을 것 같아서 1일차에 가게 되었다.
health checking open source - checkup
health check 를 할 수 있는 오픈소스에 대해서 찾아보다가 checkup 이라는 sourcegraph 에서 go 언어로 만든 것을 찾게 되었다. 생각보다 이런 오픈 소스가 없다는 게 신기하긴 한데, 요즘에는 k8s 를 많이 써서 그 안에서 해주기도 하고 이전에는 cron 이나 jenkins 를 이용해서 health checking 작업을 하거나 자체 구축해서 쓰는 경우가 많았던 것 같다.
swagger 와 redocly/redoc
swagger 를 도입해서 쓰고 있는데 확실히 테스트가 가능하다는 점, 그리고 명확하게 request/response 모델을 보여 준다는 점에서 프론트엔드/클라이언트 개발자와 소통하는데 도움이 되는 것 같다. 그렇지만 마이크로서비스 상에서 swagger 를 사용하는 부분에 있어서 몇가지 고민이 있다.
PowerMockup 사용기
![Alt text](https://live.staticflickr.com/65535/48690914577_fed50ce155_b.jpg
git remote branch 혹은 tags 가져오기
최근에 git pull 혹은 checkout 하는 개인적은 툴을 만들고 있는데, git 의 remote 의 branch 나 tags 를 가져오고 싶을때가 있다. 예를 들어, git-flow 로 작업을 하게 되면 `feature/support-api` 이런식의 branch 로 작업을 하고 remote 로 push 하는 경우가 있는데, 이런 branch 를 가져오고 싶었다. 또 github 의 release 의 경우 tags 에서 따서 하는 경우가 보통인데, tags 를 가져오고 싶었다. 그런데 보통 git repo 안에서 git
콘샐러드 5th 에서 발표하였습니다.
뱅크샐러드에서 주최한 콘샐러드 5th 파이콘샐러드에서 SQLAlchemy CustomTypes 에 대해서 발표했습니다. 실제 프로덕션에 적용해져있는 코드이기도 하고, DB 암호화를 진행하면서 고민했던 내용들을 담았습니다.
meier 1.0.1 와 블로그 이사기
몇 주전부터 심심할 때마다 블로그 서버인 [meier](https://github.com/meier-project/meier) 를 고치는 작업들을 하고 있었다. 코드도 낡고, 서버도 낡은 상태로 바꾸고 싶은 마음이 굴뚝 같았는데 그동안 여유가 안났는데 야금야금 바꾸기 시작했다. 여러가지가 있겠지만 그 중에 가장 중요한 것은 `docker` 를 사용하도록 바꾸는 작업이었다. `docker` 를 개인적으로 잘 사용하지 못해서 개인 프로젝트에서 사용해 보고 싶었고, 나중에 컨테이너 기반으로 배포나 그런 것을 실험해 볼 수 있을것 같았다.
기술 선택의 이유
되게 오랜만에 글을 쓴다. 이직하고 나서 너무 정신없이 살다 보니, 글을 쓰는 행위 자체를 잊어버린 것만 같았다. 다시 글을 쓰는 이유는 그냥 글을 쓰고 싶어졌다.
블로그 고도화 Overview
블로그에 대한 집착을 버릴려고 현재 운영 중인 블로그를 Flask 를 이용해서 개발을 했고 운영을 해오고 있다. 그렇지만 고도화를 하고 싶다는 생각을 떨쳐 버릴 수가 없었다. 개인적으로 불편한 부분도 있었고, 개인 프로젝트를 마땅히 찾지 못하다가 계속 마음에만 두는 블로그 고도화를 개인 프로젝트로 올해 한번 해보면 어떨까 하는 생각을 가지게 되었다. 원하는 기술 스택으로 다시 변경을 하고 그 과정들을 이 블로그에 쓰면 1석 2조가 되지 않을까? 하는 생각이 들었다.(사실 블로그 재료가 떨어진 것도 솔직한 마음)
99콘 발표 - 리부트:경력자에게도 수습이 필요한 순간
레이니스트에 합류한지 이제 어언 5개월로 넘어가는데 이상한 모임 99콘에 수습생황에 대해서 발표를 했습니다. 대면 오프라인 발표는 처음이라 떨렸는데 그럭저럭 잘 한것 같네요. 발표자료 올려두었고, 언제든지 궁금한 점 있으시면 메이란 페메 주시면 회사나 서비스에 대한 답변 드리겠습니다.
Running a MongoDB Database in Kubernetes with StatefulSets
본 포스팅은 Qwiklabs 의 [Kubernetes in the Google Cloud](https://www.qwiklabs.com/quests/29)
Hello Node Kubernetes
본 포스팅은 Qwiklabs 의 [Kubernetes in the Google Cloud](https://www.qwiklabs.com/quests/29)
k8s cronjob 제한
원문 : [https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#cron-job-limitations](https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#cron-job-limitations)
Introduction to Docker
본 포스팅은 Qwiklabs 의 [Kubernetes in the Google Cloud](https://www.qwiklabs.com/quests/29)
2018/
2018 회고
## 2018 회고
타다 후기, 승차거부 아니되오~
**타다를 탔다. **
파이썬 부동소수점 링크
파이썬 부동소수점 관련 링크, 보면 이해가 된다.
서비스종료
Path 서비스 종료 푸시를 받았다. 꽤 많은 서비스들이 하루에도 많이 모르는 사이에 종료 되고 있는데. 좋아했던 Path 의 서비스 종료 푸시는 마음을 아프게 했다. 꽤 오랫동안 사용했던 것 같다. 페이스북이 지금 보다 작았을 때, 나는 좀 더 친밀한 관계에 있는 사람들끼리 사진 공유를 하고 싶은 마음에 Path 를 사용했고(실제로 친구 명수 제한이 있었다.) 결혼하기 전 그러니까 4년정도 전까지 엄마와 아내와 함께 썼었다. 지금은 너무나도 흔하지만, 카메라 필터의 기능이 매우 마음에 들었고, 바로 찍어서 올린다는 것도 좋았다.
Rust 기본 문법
## 변수
Rust Cargo
## cargo 명령어 정리
면접자가 하면 절대 안되는 말
면접자로도 참여하기도 하고 면접관으로도 참여하는 짬이 되었다.(애매한) 그런데 면접관으로 참여하면서 느낀 것중 하나는 면접자 스스로 절대 하면 안되는 말이 있다. 그건 바로 **스스로 연봉을 낮추는 것이다.** 스스로 연봉을 낮춰지는 어떤 행위나 말을 하는게 아니라, 실제로 연봉을 낮게 받아도 된다고 말하는 경우들을 많이 봐왔다.
flask 파일업로드 검증하기
파일 업로드의 경우 주의할 점이(업로드를 당하는 입장에서) 악성파일 혹은 원치 않는 파일들이 들어올 수 있음을 항상 인지해야한다. 그래서 왠만하면 파일 업로드를 잘 안만들거나 내부에서 몇명의 인가된 사용자만 따로 업로드 메뉴를 보이게 해서 제공하거나 하는 식으로 하곤 했었다. 그래도 업로드가 필요할 경우 아래와 같은 방법으로 제한 할 수 있다.
SQLAlchemy Join #3 One to One
**[One To One](http://docs.sqlalchemy.org/en/latest/orm/basic_relationships.html#one-to-one)**
SQLAlchemy Join #2 Many To One
**Many To One**
PyconKR 2018 후기 2일차
# 2일차 후기
PyconKR 2018 후기 1일차
몇년째인지 모르겠지만 참여하고 있다. 나이가 들어서 그런지 점점 같이 갔던 분들이 보이지 않거나 하는것 같은데 이 역시 개발자의 숙명이 아닐까 하는 생각이 든다. 나는 아내가 파이콘 가는것을 1년에 한번이기때문에 뭐라고 하지 않지만, 주말2일 평일1일을 세미나에 쓴다는 건은 솔직히 쉽지 않다. 아쉽게도 올해는 라이트닝 토크는 함께하지 못했다. 내년에는 아이가 둘이라서 한 아이를 아이돌봄에 맡기고 봐야할 것 같다.
SQLAlchemy Join #1 One To Many
SQLAlchemy Join 에 대해서 막연하게 쓰다보니 여러가지 관계 테이블상황에서 제대로 사용하지 못하고 수박겉핣기식으로 쓰는 경우가 많았다. 그래서 공식 문서상의 Join 관련 부분(아래의 URL)을 따라하면서 막히는 부분을 풀어보고자 한다.
검색엔진 다음은? 음성인식엔진?
2010년경 윈도우즈에 깔려있는 인터넷 익스플로러에 대한 반독점 관련 이슈가 있었다. 나는 사실 이 때 이 문제에 대해서 왜 윈도우에 있는 인터넷 익스플로러가 무엇이 문제인지 몰랐다. MS가 파는 윈도우에 인터넷 익스플로러가 있는게 무엇이 잘못이란 말인가? 어차피 설치할 거 미리 설치하면 안되나? 하는 생각이 들었다. 그리고 현재 나는 상황에 맞게 여러가지 브라우저를 섞어서 쓰고 있다. 개발을 크롬에서, 웹서핑은 네이버 웨일에서, 결제는 익스플로러에서.
SQLAlchemy autocommit 에 대해서
DB 상에서 autocommit 이란 데이터 변경 작업에 대한 SQL 자체가 바로 반영되는 것을 의미하는데 autocommit 이 아닌 상태에서는 여러줄의 명령을 하나의 트랜잭션으로 묶을수가 있다.(개별 DBMS 엔진이나 DB타입에 따라 다를수는 있다. 여기에서는 MYSQL InnoDB 기반으로 테스트를 진행하였다.)
라이브러리 개발자를 위한 NullHandler
로깅에서 `FileHanlder`, `StreamHandler` 등의 핸들러는 로그를 어디에 남길것인지를 지정하는 역할을 하고, `Formatter` 는 로그를 남기는 형식을 지정할 수 있다. 그리고 `Filter` 는 그 로그 안에서 필터링 기능을 수행할 수 있다.
dictionary view object
`dict.keys()`, `values()`, `items()` 과 기존의 python2 와는 다르게 변경 되었다. 기존은 아래와 같이 리스트형을 반환한다.
ChainMap 사용법 정리
Python3.3 에서 처음 나온 ChainMap 은 익히 잘 알고 있는 collections 모듈에 위치해 있다. 3.3 에 나왔지만, 생각보다 많이 알려지지 않은 이유는 기존의 다른 방식의 코딩으로 대체가능한 영역이라서 인것 같다. ChainMap의 기본적인 역할은 quickly linking a number of mappings 이라고 소개하고 있다.
런칭 이후의 일들
요 몇년간 큰 조직과 작은 조직에서 번갈아 가면서 서비스를 런칭을 해보면서 드는 생각이 있다. 런칭 이전에는 설계와 코드에 많은 공을 들이지만, 이후에는 그것 보다는 좀 더 프로세스 및 자동화에 신경을 많이 쓰게 되는 것 같다.(설계와 코드는 항상 중요하다.) 오픈하고 땡이라는 개념은 개발-운영이 분리된 조직에서나 가능한 것 같고. **개발하면서 운영도 해야하는 작은 조직에서 가장 중요한 것은 개발생산성과 품질을 운영을 하면서 유지 하는 일이다.**
불편한 운동화
난 원래 기본 스타일의 운동화를 즐겨 신는다. 뉴발란스나 나이키 포스 같은 스타일이라고 보면 될것 같다. 홈쇼핑에서 나오는 여름형 매쉬소재의 운동화들을 사고 싶었지만 금방 적응하지 못하고 안 신을것 같아서 주문하지 못했었다. 그런데 지난달 아내와 함께 이마트에 가서 2만원짜리 매쉬 소재의 운동화에 꽂혀서 사버렸다.
차별과 마주하다.
최근에 면접에 참가하고 개발자를 뽑으면서 겪었던 일은 조금 화가 났던 일이다. 자꾸만 생각나는 일이어서, 이렇게 글을 쓰게 되는데. 나는 이 업계에는 그래도 다른 업계에 비해서 나이와 성별에 대한 제약이 차별이 덜하고 생각해 왔었다. 그리고 그런 곳에서 일을 한다는 것에 자부심을 느끼고 일을 하고 있었다. 그렇지만, 왜 성별이 다른 개발자를 뽑았냐고 물어보는 사람에서 부터, 예쁘냐고 물어보는 사람까지. 예전 같았으면 그냥 넘어갔을 이야기지만, 나도 모르게 거북함을 느꼈다. 개발자를 뽑았을 때 내가 들었던 이야기의 대부분은 잘 적응
travis-ci 환경변수
테스팅을 구성하고 travis-ci 를 연결을 해서 테스트 하던중 의문이 생겼다. 로컬 컴퓨터에서 테스트 할 때에는 db 정보를 설정에 두거나 하드코딩된 채로 사용했었는데, travis-ci 에 올리기 위해서는 그런 정보들을 어디엔가 두어야 한다. 물론 저장소에 둘 수도 있지만, 그리 좋은 방법은 아니다.
블로그 툴 이사
블로그를 개편했다. 아니 정확히는 블로그 툴을 바꿨다는게 맞는것 같다. 블로그에 대한 나의 편력(?)은 대단한 편이다. 처음에 테터툴즈로 시작했고, 티스토리, 네이버를 거쳐서 워드프레스([Startig wordpress](https://ash84.net/2015/04/14/starting-wordpress/)) 그리고 ghost까지. 그리고 지금은 직접 개발하고 있는 블로그 툴을 사용하고 있다.
발표자료 - MQTT 를 이용한 주문 시스템 개선
동영상 : https://youtu.be/agnXsel_EnU
발표자료 - github : 유용한 기능들
사내에서 github 의 다양한 기능들에 대해서 소개했던 자료 공유합니다.
pyinstaller 로 실행파일 만들기
암복호화 프로그램을 만들 일이 있었는데, 파이썬으로 작업을 하게 되면 *.py 파일 안에 암복화키가 보여지기 때문에 리눅스 실행파일로 만들수 있는 방법을 찾게 되었다. C/C++ 을 이용해서 실행파일을 만들까 싶다가 pyinstaller 가 있길래 사용해 봤는데, 사용법이 너무 간단하다.
flask-mqtt : subscribe 시 qos 설정 이슈 수정하기
이번 프로젝트를 하면서 주문관련 부분을 기존의 폴링(polling) 을 하던 방식에서 중간에 브로커서버를 두고 주문하는 쪽에서 주문을 보내면 브로커 서버의 특정 topic 을 구독하고 있는 구독자가 해당 주문을 받는 형태로 구성을 했다. 그 과정에서 mqtt 를 이용했고, [emqtt](https://emqtt.io) 브로커 서버를 선택해서 사용하고 있다. 주문을 하는 쪽에서는 flask 로 구성되어 있어서 별도의 [paho client](https://pypi.python.org/pypi/paho-mqtt/1.2) 라이브러리를 띄
jinja - {% break %} 사용하기
jinja template 는 강력한 형태의 for 문을 제공하는데, 당연히 일반적인 for 문 안에서의 continue 나 break 등이 가능할 것이라고 생각하지만, 기본적으로 제공하지는 않는다. 이런 기능을 사요하기 위해서는 `jinja2.ext.loopcontrols` 을 설치해야 한다.
2017/
iftop 설치, 실시간 트래픽 확인하기
실시간 트래픽을 보고 싶을때가 있는데, 여러가지 툴들이 있겠지만 iftop 을 설치하면 좀 더 간단하게 볼 수 있다.
PyCurl 사용하기
페이스북 코리아에 [requests 보다 pycurl 이 더 성능이 좋다는 stackoverflow 글](https://stackoverflow.com/questions/15461995/python-requests-vs-pycurl-performance)이 공유되서 pycurl 이 몬지 requests 코드와 비교해 보면서 익혀보았다. 일단 아래의 코드는 실제 POST 요청을 보내고 json 데이터를 받는 API를 호출하는 코드이다.
React Native App 시작하기
이 글은 [React Native Getting Started](https://facebook.github.io/react-native/docs/getting-started.html) 에 대한 삽질기입니다.
beaker_session MySQL server has gone away
매일 아침 와서 현재 개발중인 백오피스를 켜면 Internal Server Error 발생. 로그를 보니 아래와 같은 오류 발생
flask-babel 로 다국어 대응하기
flask 로 다국어 서비스를 만드는 일을 하고 있는데 일단 생각해 볼 부분이 API 와 WEB 이다. API는 모바일에서 요청이 들어오는 형태인데, 이 경우 모바일의 사용자 언어 설정을 파라미터로 받고 API 레벨에서 DB 내에 다국어 컬럼 혹은 행이 있다는 가정하에 select 를 해서 response 를 내보내면 된다. WEB 의 경우 AcceptLanguage 를 이용할 수도 있고, GET 요청의 파라미터로 언어코드가 전달 된다면 그것을 활용할 수도 있다.
Deview2017 2일차 후기
언제부터인가 Deview 를 2일 모두가는건 축복 혹은 사치가 되어버렸다. 2일 연속 신청해서 선착순 혹은 당첨되기도 어렵고, 2일 연속 회사에서 가라고 등떠밀지도 않기에 쉽지 않은일이 되어버렸다. 개인적으로 몇번째 Deview 인지는 모르겠지만 올해는 팀의 20살 막내를 데리고 참가를 하게 되었다. 개인적으로 1일차가 좀더 맞았던것 같은데 2일차만 되서 참석하게 되었다. 들었던 몇가지 세션들에 대한 느낌은 이렇다.
2017년 10월 파이썬 세미나 - Python & Data
파이콘에서 주최하는 세미나가 있어서 참석하게 되었다. 역삼동에 있는 페이스북 코리아에서 열리게 되었고 간단하게 들었던 부분을 남겨본다.
로그를 잘 남기기
보통의 웹 어플리케이션, 사이트 등을 만들 때 순수한 개발 외적으로 신경 써야 할 부분 중 여러 가지가 있는데 그 중에 하나가 로그이다. 잘 돌아가는 사이트들도 서버에 들어가서 로그를 남기는 형태나 로그파일을 보면 얼마나 신경을 썼는지를 알 수 있다. 이건 마치 그림의 뒷면이나, 자동차 하부를 보는것과 같다.
인공지능 스피커, 과연 이게 필요한가?
카카오미니, 네이버의 웨이버, 아마존의 에코 등 인공지능 스피커들이 난리다. 정확히 인공지능 스피커라는 용어가 맞는지도 모르겠지만, 개인적으로는 솔직히 왜 이게 필요한지를 모르겠다. 일단 기능자체는 거의 모든것들이 현재의 스마트폰에서 되는것이다. 노래를 찾아서 재생하거나, 길을 찾거나, 집에 있는 하드웨어를 제어하거나 등등. 좀 더 나은점이라면 음성인식 + 서비스가 하나로 결합된 상태라고 볼 수 있을것이다. 아이폰의 시리나 삼성의 벅스비에 구글이나 네이버의 서비스들이 합쳐진 형태라고 볼 수 있다. 스마트폰에서는 네이버앱에 들어가거나
emqtt shared subscription
최근에 우아한형제들 기술블로그에서 mqtt 관련 글이 올라온것을 봤는데, 마침 새 프로젝트에서 mqtt 를 사용할 경우가 생겼다. mqtt의 여러가지 기능 중에서 **Shared Subscriptions** 기능이 필요했다. 이 기능이 필요한 이유는 하나의 토픽을 여러 클라이언트가 수신하고 있는 상태에서 여러 클라이언트 중 하나만 어떤 기능을 하기 위해서이다. 예를 들면, 주문상태가 변경되면 알림을 발송해야하는데 2개의 클라이언트가 수신하고 있다고할때, 두번 알림이 발송되는 문제가 발생하는데 shared subscription 을
flask-sqlalchemy multiple databases
### **사용하기**
python - db stored procedure 호출에 generator 활용하기
프로시저 호출은 몇 가지 제약을 가진다. 일단 프로시저명을 전달해야 하고 파라미터를 순서대로 전달해야 한다. 그리고 결과를 주는 방식이 하나의 결과를 줄 수도 있고 여러 결과를 줄 수도 있다. 프로시저당 하나의 호출 함수를 만들면 너무 많은 프로시저 호출 함수가 생기는 문제가 있다. 그래서 프로시저 이름을 받는 파라미터와 전달할 프로시저 파라미터, 그리고 insert, update, delete 의 경우 commit 을 해야하기 때문에 commit 여부를 위한 파라미터, 그리고 여러 결과를 반환하는 여부에 대한 파라미터를 추가한 호
dev-meetup.github.io - 마우스 오버 기능 추가
![https://farm5.staticflickr.com/4429/36158285423_93e18791f4_z.jpg](https://farm5.staticflickr.com/4429/36158285423_93e18791f4_z.jpg)
PYCONKR2017 을 다녀와서.
[파이콘2017](https://www.pycon.kr/2017/) 에 다녀왔다. [작년의 pyconApac 의 화려함을 뒤로하고](https://ash84.net/2016/08/24/pyconapac-2016/) 올해는 표제부터 Back to the Basic 이었다. 언제나 파이콘의 티켓 예약은 전쟁터였다. 나 빠른 점심을 먹고 들어와서 예약을 했고, 몇분후 예약을 못한 사람들이 속출하기 시작했다. 발표자 모집이 시작이 되었고, 발표를 하고 싶은 마음도 있었지만 올해는 한발자국 멀리서 지켜보게 되었다. 2-3주 정도 남았을 무렵
python sorted 에 대해서.
sorted 에 대해서 질문을 받았고 잘 대답을 하지 못해서 복기차원에서 이 글을 쓴다. 대부분의 내용은 [Sorting HOW TO](https://docs.python.org/3/howto/sorting.html) 라는 글에서 가져왔음을 밝힌다.
flask - request.script_root 이용하기
하나의 웹을 여러 path 에 올려야 할 경우가 있다. 예를 들면, 테스트를 위해서 `/web1`, `/web2` 이런식으로 구성해서 올릴 경우이다. 이런 경우 프론트단에서 URL로 지정해 놓은 값들을 수정해 줘야 한다.
flask - render_template 어떻게 사용할까?
flask 를 사용하다보면 view 코드가 길어지는 경우가 있는데 그 중 하나가 views.py 에 route 함수가 많아져서 길어지는것 그리고 다른 하나는 `render_template()` 함수에 파라미터가 많아져서 길어지는 경우다. 전자의 경우 blueprint 로 분할하거나 resource 단위로 분할하면 해결할수 있다. (이건 다른 포스트에서 자세히 설명하겠다.) 후자의 경우에는 어떻게 해결 할수 있을까?
퇴사자는 진실을 말하지 않는다.
나도 그랬고 다른 사람도 그랬다. 친한 사람들 앞에서는 퇴사의 이유에 대해서 이야기를 하지만 진짜 퇴사 이유를 밝히지는 않는다. 더 좋은 오퍼가 있어서 간다는 식이다.(어떤 사람이 더 나쁜 오퍼가 가겠는가, 가봐야알뿐)
No Show 면접
**말 그대로 노쇼(No Show)다.** 면접자가 나타나지 않았다. 연락도 되지 않았다. 한 자릿수의 서류 통과자 중에 2명이 불참했다. (불참을 선언한게 아니다.) 한명은 전화를 받지 않았고, 다른 한명은 면접일자/시간을 변경해 줬음에도 불구하고 아무 말도 없이 오지 않았다. **오지 않는건 자유다.** 그렇지만 못 간다는 애기를 전달해 주는게 예의가 아닐까? 왜 오지 않는지 묻지도 않는데 기다리는 사람도 생각해 주는게 맞는거 아닐까?
pymssql nextset() 빈값 이슈
최근에 구현한 부분에서 이상한 경험을 했는데 같은 db 프로시저를 호출하는 코드를 쓰고 테스트를 했는데 어떤 조건으로는 데이터가 순서에 맞게 잘 나오고 안나오고 하는 경우였다.
MNIST Tensorboard 따라하기
Azure Text Analytics 연동하기
[지난 글](https://ash84.net/2017/07/02/using-chatfuel-make-chatbot/)에서 chatfuel을 이용해서 챗봇을 간단하게 만들어봤는데 MS Azure 에서 제공하는 Text Analytics API 를 연동해서 감정분석까지는 아니고 단순하게 텍스트에 대한 긍정부정을 알려주는 챗봇을 구성해 보기로 했다.
chatfuel 이용 간단하게 챗봇 만들기
실용주의 머신러닝 스터디 과제를 하면서 챗봇을 만들수 있는 여러 프레임워크나 도구들을 알게 되었는데 그 중 하나가 chatfule 이었다. bot framework 는 azure를 가입해야하는 부담감이, api.ai는 gcp를 이용해야 하는것 같았다. 기존에 쓰던 개인 서버에서 돌려보고 싶었고 비교적 간단한 [chatfuel](https://chatfuel.com) 을 이용하게 되었다.
서비스를 개발 할 수 있는 회사는 따로 있다.
몇번의 회사들을 옮기면서 느낀점이다. 내가 다녔던 회사들의 대부분은 솔루션이나 B2B 사업을 통해서 캐쉬카우를 확보한 회사들이었다. 그런 회사들은 이상하게 공통적으로 어떤 자체 서비스를 개발하고 싶어한다. 회원 가입을 하고 뭔가 기존 솔루션과 연관된 서비스를 제공하거나, 다른 서비스를 제공하고 돈을 받는. B2B 위주의 기업들이 B2C 를 하고 싶어 하는 것이다.
flask - json_encoder 지정하기
API 상에서 JSON 으로 응답을 내보내기 위해서는 데이터를 Json Serialize(직렬화)를 해야한다. 그런데 json 에서 표현할 수 있는 데이터는 한정이 되어 있어서 각 프로그래밍 언어에 있는 모든 타입을 지원하지는 못한다. Decimal 형도 그런 예 중 하나인데 파이썬에서는 `json.dumps()`를 통해서 주로 직렬화를 하고 그 함수의 기능 중에 `cls` 인자를 통해서 JSONEncoder 를 구현한 서브 클래스를 지정해 주면 해당 인코더로 json 문자열을 만든다.
[책] 도메인 주도 설계(에릭에반스) -3
링크 - http://yimay.kr/t499o6dfsz
[책] 도메인 주도 설계(에릭에반스) -2
링크 - http://yimay.kr/t499o6dfsz
Python - 리스트 순회중 수정하는 문제
본 글은 Toptal에 올라온 [Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make](https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make) 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다.
[책] 도메인 주도 설계(에릭에반스) -1
##제 1부 동작하는 도메인 만들기
Python - 파이썬 범위 규칙에 대한 잘못된 이해
본 글은 Toptal에 올라온 [Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make](https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make) 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다.
Python - 예외처리 블록에 대한 잘못된 파라미터 지정
본 글은 Toptal에 올라온 [Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make](https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make) 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다.
dev-meetup.github.io 모바일 지원
참고 : [dev-meetup.github.io 개발기](https://ash84.net/2017/03/28/dev-meetup-github-io/)
Python - 잘못된 클래스 변수의 사용
본 글은 Toptal에 올라온 [Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make](https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make) 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다.
Python - 함수 디폴트인자의 잘못된 사용
본 글은 Toptal에 올라온 [Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make](https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make) 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다.
Security bugs on Windows servers: Flask 0.12.2 and Werkzeug 0.12.2 released
원문 : https://www.palletsprojects.com/blog/flask-werkzeug-0122-security-release/
[책] 직업으로서의 소설가를 읽고
[직업으로서의 소설가](http://yimay.kr/t499o6csnx) - 무라카미 하루키 - 의 에세이 책을 읽었다. 접어놨던 책장에서 몇몇 구절과 함께 느낀점들을 적어 본다.
hyperdrive 사용기
맥북프로를 지른후 가장 큰 고민은 기존에 이용하던 주변기기를 어떻게 연결할 것인가 하는 문제였다. 집에서 사용하는 환경은 아래와 같았다.
PROGRESSIVE WEB APP ROADSHOW 2017 KOREA
커리어가 웹의 백엔드와 프론트 언저리에 걸쳐져 있는데 확실히 프론트엔드 개발쪽은 변화가 굉장히 빠르게 일어나고 있다는 것을 느낀다. AMP, PWA 에 대해서 도데체 뭔지 그리고 지금 결제 관련 일을 하고 있기 때문에 WebPaymentAPI 에 대해서 좀 더 알고자 참가하게 되었다.
EMOCON S/S 2017 후기
올해도 어김없이 이모콘을 들었다. 아래의 타임테이블에서 내가 들은것만 볼드 표시를 했다. 주로 Day1을 들었는데 Day2는 듣다가 아드님이 놀아달라고 보채는 바람에 듣길 포기했던것 같다.
pycharm - bookmarks 북마크
pycharm 에는 북마크 기능이 있다. 많은 파일과 소스 파일내에 특정 위치를 빠르게 이동하기 위해서는 북마크 기능이 필수적이다. `F11`(윈도우 기준) 키를 눌러서 현재 있는 위치에 북마크를 지정 할 수 있다. 중요한 점은 소스파일 뿐만 아니라 project 뷰 안에 파일을 선택한 상태에서도 F11을 통해서 북마크에 추가 할 수가 있다.
pycharm - 화면 모드
pycharm 에서는 3가지 화면을 다르게 볼수 있는 것을 제공하고 있다. 그래서 특정 상황에 맞는 화면모드를 사용 할 수가 있다.
flask - jinja2 tojson 필터
flask 문서를 보다보니 [standard filters](http://flask.pocoo.org/docs/0.12/templating/#standard-filters) 라는 항목이 있는데 `tojson` 이 그 내용이다.(기본적으로 제공하는 필터라는 내용) 간략하게 애기하자면, 어떤 랜더링할 변수에
git feature branch 모델 프로젝트 적용기
원래 사내에서 svn을 사용하고 있는데 자회사쪽과 작업을 하면서 그쪽 개발자를 구워 삶아서(홀려서) svn 이 아닌 git을 저장소로 사용하기로 하고, github 를 쓰고 싶었지만 작업자가 2명이라서 [yona H2 embedded 버전](https://github.com/yona-projects/yona)을 사용하기로 했다.
늦은 저녁을 먹다.
퇴근을 해서 늦은 저녁을 먹었다. 밥상머리에 앉아서 아내가 차려준 저녁을 먹으면서 왜 늦게 퇴근을 한 것일까? 왜 내가 지금 밥을 먹고 있는지 생각하게 되었다.
pycharm - settings.jar 개발환경 공유
사내 팀에서 pycharm 을 파이썬 개발 공식툴로 사용하고 있다. 처음에 커뮤니티버전에서 시작해서, 개인 프로페셔널을 쓰다가, 이제는 회사에서 라이센스를 끊어서(기업용) 사용하고 있다. 개인 개발용으로도 구입해서 사용하고 있는데, 회사와 내 개인용 컴퓨터(맥) 간의 pycharm 환경을 동일하게 맞추고 싶었다.
pipreqs - requirements 뽑기
`virtualenv` 를 사용하면 사실 좋긴 한데, 그게 아닌 경우에 대해서 개발 서버에서 작업했을때 **requirements.txt** 를 뽑기가 어렵다. **requirements.txt** 가 필요한 이유는 서버에 세팅시 pip install -r 옵션을 통해서 한번에 라이브러리를 설치할수 있기때문에 필수이다. pipreqs 를 사용하면 특정 프로젝트 하위에서 사용하는 라이브러리 리스트를 추출할 수 있다. `virtualenv` 를 도입하기 힘든 환경에서 사용하면 좋을 듯.
dev-meetup.github.io 개발기
개발자 세미나는 예전보다 훨씬 많이 자주 열리고 있다. 컨퍼런스 단위는 사실 1년에 많이 열리진 않지만, 어떤 단체나 회사에서 주도하기 때문에 홍보가 잘되고 많은 사람들이 참여하기 마련이다. 그렇지만, 밋업이나 세미나 그런 단위는 커뮤니티안에서만 주로 공유가 되고 외부 개발자가 알기가 어려웠다. 물론 찾는 노력을 하면 되지만, 모든 커뮤니티/사이트에 대한 워치독(watchdog)이 될 수는 없다.
[Ghost] 블로그 연관포스트 기능 추가하기
ghost 블로그 툴을 선택해서 사용한지도 꽤 되어 가는데, 마크다운(markdown)을 이용한 글쓰기 툴을 제공한다는 점 그리고 서비스와 설치형이 모두 있다는 점에서 선택했지만, 기존에 사용했던 티스토리, 워드프레스에 비해서 몇몇 기능이 없는 것은 사실이다. 카테고리를 지정하거나, 사이드바에 있는 다양한 기능들은 사실상 ghost 블로그에서는 찾아 보긴 힘들다.(서비스 형에서는 어떤지 모르겠다.)
친절한 미용사
밥을 급히 먹고 나오는데 주노헤어가 정면에 있었다. 동료들에게 머리를 자르고 들어가겠다고 얘기하고 미용실로 들어갔다. 찾으시는 디자이너가 있냐는 말에 그냥 머리 자르러 왔다고 했다. 한 디자이너가 나에게 와서 이것저것 묻는다. 나는 그냥 깔끔하게 잘랐으면 좋겠다고 얘기 했다. 지금 머리는 너무 길고 특히 앞머리가 길어서 눈을 찌른다고. 커트 가격 애기를 들었을 때 약간 후회했다. 원래 다니던 곳보다 곱절로 비쌌다. 커트를 하기 전에 머리를 감겨 준다고 한다. 머리를 감겨주는 친구가 매우 친절했다.
AWSKRUG 신년 콘퍼런스 - re:Invent 특집
올해 첫 세미나/컨퍼런스로 **[AWSKRUG 신년 콘퍼런스 - re:Invent 특집]** 을 선택했고, 다녀왔다. AWS 를 사실 회사에서나 개인 프로젝트를 할때에도 부담되는 부분이 있어서 사용하진 않고 있지만, 앞으로는(언젠가는) 더 AWS, AZURE 등을 도입하는 방향으로 갈 것이라고 생각했기 때문에 신청하게 되었다.
2016/
기술 링크 정리 #3 - 2016/12/28
####**파이썬 관련**####
기술 링크 정리 #2 - 2016/12/20
####**파이썬 관련**####
(flask) JSON 데이터 받기 및 예외처리
flask 에서 json 데이터를 받아서 처리할 때 reqeust.get_json() 혹은 request.json 을 이용할 수 있는데, mime type을 application/json 타입으로 보내는데, {} 없이 빈 JSON 문자열 조차도 안 보내는 경우가 있을수가 있다.
기술 링크 정리 #1 - 2016/12/09
####**파이썬 관련**####
audio5.js 를 이용한 음원 재생 및 제어
이번 프로젝트 하면서, 주문이 들어왔을 때 웹상에서 특정 소리로 사용자에게 알려줘야하는 부분이 있었는데, 음원 재생관련 라이브러리를 찾아 보다가 괜찮은 것이 있어서 예제코드를 남긴다.
ModHeader를 이용해서 쉽게 Header 넣기
https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj
(flask) jsonschema 를 이용해서 request.json 검사하기
API에서 파라미터의 유효성 검사는 필수적인 요소이긴 하지만, 개발자로서 여간 귀찮은 일이 아닐 수 없다. API의 양이 많을수록 할 일은 많아진다. 세세하게 체크할 부분은 해야하지만 기본적으로 파라미터 유무, 파라미터의 데이터 형을 체크하는 부분이 필요했다. API는 기본적으로 JSON 을 `POST`로 받는 식으로 구성되어 있어서 JSON을 검증하는 부분이 필요했다.
SQLAlchemy with StoreProcedure
PyconAPAC 2016 후기 슬라이드
마크다운 문서화 도입기
최근에 신규 프로젝트를 들어가면서 DB와 API 설계를 담당하고 있는데 일반적으로 DB 설계는 설계 후 산출물을 가지고 검토를 받고, API는 설계 산출물을 가지고 클라이언트 개발자(앱과 웹) 전달해서 연동할 때 사용하도록 하는 식으로 진행이 된다.
Letsencrypt & nginx ssl setting
[Letsencrypt](https://letsencrypt.org/) 를 적용해 보기로 하고 이 블로그는 Apache 로 운영되고 있어서 [certbot-auto](https://certbot.eff.org/) 을 이용해서 ```--apache``` 옵션을 주고 했는데 뭔가 이상하게 잘 안되었다. Apache 의 설정 문제인지 모르겠지만, 회사에서 가서 후임에게 물어보니 Nginx 는 잘 되었다고 해서 일단 nginx 로 바꾸고 ```certonly``` 옵션을 주고 인증서만 만들었다.
flask-runner
Flask 에서 개발을 할 때, Debug 옵션을 키고 app 에 기본 내장된 개발서버를 사용한다. 그런데 파일을 수정하면 재시작하는 기능은 좋은데, `host` 나 `port` 를 지정해 놓고 사용하다가 변경할때 귀찮은 부분이 있다. 특히 `port` 같은 경우 특정포트를 지정해두면 꼭 다음날에 누군가 쓰고 있어서 다시 수정해서 실행해야 하는 번거로움이 있다.
Python flake8 사용하기
[pep8](https://pypi.python.org/pypi/pep8), [flake8](http://flake8.pycqa.org/en/latest/) 등의 툴이 파이썬 코드의 정적검사를 하는 툴이다.
docxtpl 를 이용한 문서 자동화
엑셀의 경우, 백오피스나 CMS 등에서 import/export 에 사용하기 때문에 기능구현 할 때 [XlsWriter](https://github.com/jmcnamara/XlsxWriter) 를 이용해서 구현했던 적이 있었다. 그에 비해서 워드 문서를 생성해 내는 작업은 별로 없었다.
글을 못쓰는 변명
짧게 쓴다.
celery + supervisord
celery 를 데몬방식으로 실행해야할 경우, [몇 가지 방법](http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html)이 있는데 그 중에 하나가 supervisor 를 이용하는 것이다.
[python] MySQL-Python 설치오류, mysql_config not found
[Ghost] 검색기능 추가하기
Ghost 블로그를 사용한지도 몇개월이 되었는데, 마크다운 기반으로 작성하고 작성툴 역시 깔끔하지만 요상하게 2가지 부분에서 Ghost 블로그가 아쉬움이 있다. 하나는 **카테고리**고, 다른 하나는 **검색**이다.
MS Community Open Camp 2016
오키나와 여름휴가를 마치고 이전에 신청해봤던 MS Community Open Camp 2016에 참가하게 되었다. 광화문이라는(언제 이사를 간 거야, MS) 먼 곳을 가기 위해서 많이 고민했지만, 가기를 잘했다는 생각이 든 세미나였다.
[책] 가면사축
회사일에 빡치고 힘들어서 서점에 갔는데 우연히 찾은 책이었다. 리디북스에도 e북이 있길래 사서 봤는데 당연한 글인것 같으면서도 자극이 되는 부분이 있었다. 20대에 첫 직장에서 생활을 하다보면 회사에 충성하고, 회사에서 잘 생활하는 것에 많은 시간을 할애 했던것 같다. 뭐, 몇번의 이직으로 그런 환상은 깨져버렸지만 말이다. 30대 초중반을 지나는 지금은 회사에서 40대가 넘어간 개발자, 회사원들을 보면 뭔가 회사에서 묶여있는 느낌을 많이 받았다. 나도 저렇게 되는가 싶기도 하고. 어쩌면 그게 맞을지도 모르겠다. **결국 방향은 자기
모듈화 Webpack 관련 정리
**주의**
tailon 으로 로그파일 웹에서 보기
서버에 있는 로그를 웹상의 타인에게 보여줘야 할 경우가 있는데(가급적 이런 경우는 좋지 않은 상황인 경우이다.) 어떻게 할까 찾아보다가 python 으로 된 tailon 이라는 쉽게 커맨드 명령어로 띄울 수 있는 툴이 있어서 소개한다.
EMOCON 2016 S/S
어김없이 이모콘이었다. [2015](http://ash84.net/2015/10/28/about-plate/) 한지가 어제 같은데 [2016 S/S](http://emocon.weirdx.io/2016ss/)라니. 밀라노 패션쇼 같은 느낌이랄까. 슬랙에서 우선적으로 발표자 모집 및 관련 내용들을 공지하기 시작했고 언제 방청 신청을 해야하나 계속 기다리고 있었다. 그러던 중에 [온오프믹스](http://onoffmix.com/event/63231)가 열렸고 신청하면서 이번에는 나름대로 준비하시는 분들을 위해서 결제를 했다. 세미나가
Upstream and Syncing a fork
위와 같은 경우가 많이 발생을 한다. 하나의 github 프로젝트에서 내가 뭔가의 수정을 위해서 fork 를 하고, 수정을 해서 Pull Request 를 날린후, Merge 가 된다. 그리고 다른 사람이 원래의 프로젝트에 커밋을 하면 내가 fork 뜬 프로젝트에서는 해당 커밋들을 가져와야 한다. 그래야 최신 상태에서의 기여가 가능하니까. 어떻게 해야할까? 찾아 보니 Upstream 이라는 개념이 github 에 있어서 소개 한다.
xcode without storyboard
이상하게도 난 여전히 스토리보드가 쉽지 않다. 코드를 통해서 UIViewController 를 만들어내고 호출하고 이동하는 것들이 자연스러운 구시대 유물인셈. storyboard 없이 프로젝트를 시작하려면 일단 simple view application을 선택하고, AppDelegate.m 에서 아래와 같이 코딩해주면 된다.
[ELK] logstash
###개요###
wakatime, Time tracking for programmers
트위터에서 다른 개발자분이 [wakatime](https://wakatime.com) 을 적용해서 얼마나 코딩을 했는지에 대해서 측정하고 있다는 애기를 들어서 [wakatime](https://wakatime.com)을 가입하고 적용을 해봤다. 일단 가입을 하고 나면 내가 사용하는 개발자툴, IDE에 해당 플러그인이나 세팅을 해야한다. 주로 내가 사용하는 툴들이 대부분 있었다. 적용한 툴들은 **Pycharm**, **Notepad++** 이었고 두 개의 툴에 모두 세팅을 했다. Pycharm 으로 파이썬 웹 개발을 주로 개발을 하
polyfill & modernizr
celery states
아래는 celery 의 state 인데, 보통 celery-flower 조합으로 많이 쓰기 때문에 [flower](https://github.com/mher/flower)를 쓰다보면 조회 조건중에 states 가 있어서 아래와 같이 정리해본다. 즉시 실행하라고 명령하면 STARTED-SUCCESS 또는 FAILURE 로 표시되겠지만, `countdown`을 주어서 실행한 경우에는 즉, 어떤 예약을 거는 경우에는 해당 task가 RECEIVED 로 표시되게 된다. 그리고 [flower](https://github.com/mher/f
2015 되돌아보기
잘 한해를 정리하는 편이 아니다. 어느새부터 뭔가 그런건 낯간지럽기도 하고. 그런데 점점 더 나이가 들면 들수록 더 그렇게 되는것 같아서 의식적으로라도 글을 쓰면서 정리하고자 한다. 지극히 개인적이고, 나를 되돌아보는 글임을 밝힌다.
2015/
github isometric contribution graph
1년동안 한 일에 대한 [github contribution graph](https://github.com/jasonlong/isometric-contributions) 를 보고 있는데 구글을 검색하다 보니 3차원? 틱한 그래프를 발견, 링크를 들어가보니 isometric graph 라고 한다. 일종의 플러그인, 익스텐션 같은것인데 아래의 링크에서 설치하고 나면, github 내 본인의 contribution graph가 있는 아이콘이 생기고 해당 아이콘을 누르면 아래와 같은 그래프 형태가 나온다. 설정해놔도 재밌을듯.
이상한모임 2015 연말정산
[작년에 이어서](http://ash84.net/2015/02/27/2014-%EC%9D%B4%EC%83%81%ED%95%9C-%EB%AA%A8%EC%9E%84-%EC%97%B0%EB%A7%90%EC%A0%95%EC%82%B0-%EB%92%A4%EB%8A%A6%EC%9D%80-%ED%9B%84%EA%B8%B0/) 2번째 이상한 모임의 연말정산을 갔다. 작년에 개인적으로 너무 좋아서 이번에도 당연히 믿고 가는 이상한 모임 2015 연말정산이었다. 혹자는 가격이 너무 비싼게 아니냐고 생각할 수도 있지만, 이 모임을 통해서 여러가지 다
Console.log() Browser Support
부끄러운 자기고백이다. 만든 결제창이 IE9 에서 문제가 있다는 연락을 받았다. 현상은 버튼을 누르면 다음 단계로 진행되지 않는 이슈였는데, 여느 IE9 에서 재현을 시작했다. 쉽게 재현되었다. 결제버튼을 누른후 다음 단계로 넘어가지 못하는 문제를 발견 하였다. 그리고 뭐가 문제인지 보기 위해서 F12 개발자 도구를 열어서 다시 처음부터 진행을 했다. 그런데 이번에는 제대로 다음 단계로 넘어가는것이다. 개발자도구 콘솔창에는 어떤 에러도 나오지 않았다. 자바스크립트 코드를 찬찬히 보기 시작했다. `console.log()` 함수가
powerline 설치후기
![](https://farm1.staticflickr.com/581/23006961403_2b2ba85903_b.jpg)
승려와 수수께끼
[청년창업, 8권의 책으로 시작하다](http://book.naver.com/bookdb/book_detail.nhn?bid=7237005)라는 배달의 민족 김봉진 대표이사의 책을 우연히 읽게 되었다. 책에 대해서 관심도 많았고, 창업에 대해서 관심도 많은 지라 선택한 책이었는데, 재밌게 읽은 기억이 있다. 총 8권의 책을 소개하면서 창업과 관련되어서 일과 성공, 인생과 삶에 대해서 애기를 하고 있는 책이다. 기회가 된다면 한번 읽어보기를 추천한다. 왜 이야기를 할까? 그 8권의 책 중 하나가 바로 [승려와 수수께끼(The mon
mobile-detect.js
정밀하게 useragent로 안드로이드인지, 아이폰인지, 크롬인지, 파폭인지 구분해야 하는 것도 중요하지만, 때로는 그냥 모바일이냐 데스크탑이냐를 구분짓고 싶을때가 많다. 그래서 찾던것 중에 `mobile-detect.js` 라는 것이 있는데 쉽게 자바스크립트 단에서 쓸 수 있는것 같다.
Celery Install Ubuntu & CentOS 6.5
### **celery 설치**
flask template_filter multi arguments
![](http://jinja.pocoo.org/docs/dev/_static/jinja-small.png)
rotatelogs 사용법
링크 : [https://httpd.apache.org/docs/2.2/ko/programs/rotatelogs.html](https://httpd.apache.org/docs/2.2/ko/programs/rotatelogs.html)
logrotate 사용해서 로그 일별분할 하기
EMOCON 2015 F/W - Plate 에 대한 이야기
이상한모임 컨퍼런스, 일명 EMOCON 2015 F/W 에 1일차에 ‘카피캣으로 시작하는 오픈소스’ 라는 약을 팔았다. 올해의 목표중 하나가 컨퍼런스 발표였는데 난 아직도 대면은 어려운지라, 이상한 모임 덕분에 올해의 목표를 이룬것 같아
Prevent refresh and backspace using java script
postman and postman2md
## **postman**
#HeForShe
“내가 아니면 누가?, 지금 아니면 언제?” 기억하자.
mod_wsgi & Apache 2.4 setup script
개인적으로 만든 스크립트인데, centos 상에서 python 설치하고, Apache 2.4(httpd) 설치하고, mod_wsgi 세팅하는 작업에 대한 스크립트이다. 돌려보진 않았는데 제대로 될런지는.. **중요한 부분은 파이썬을 설치하는 옵션에 대한 부분과 mod_wsgi 를 설치하는 부분이다.** 참고하시길.
python csv and encoding in csv file.
파이썬의 csv 모듈을 이용해서 MS Excel2010 에서 만든 csv 형식을 가져오는 코드이다. 별것 없는 코드를 올리는 이유는 단연 인코딩 때문인데 csv 모듈은 파이썬2.7 에서 다음과 같은 내용이 있다.
Use google geocoding & reverse geocoding
### **API Key 가져오기**
mysqldump - dump & restore
**mysqldump 덤프뜨기**
[js] datatables exist?(datatables 유무 확인)
datatables 라는 자바스크립트 라이브러리를 자주 사용하는데(좋아서가 아님.) 요상하게 .DataTable() 함수를 2번 호출하면 duplication init 관련 오류가 나고 데이터가 한번 그려지고 그 다음에 다시 새로운 데이터로 그릴려고 하면 갱신이 안되는 문제가 있었다. if 문 처럼 datatables 가 있는지 확인하고 있으면, 한번 그려진 이후이기 때문에 그냥
사용자 추가 삭제 및 그룹지정
자주 까먹는거라서 메모!!
[pull request] spgen, generate mysql stored procedure
#### **앞서서, 프로시저에 대한 이야기**
euc-kr data in flask
### **파이썬에서의 unicode와 str**
A/B Test Post 요청하기
ab 는 [apache bechmark testing](http://httpd.apache.org/docs/2.2/ko/programs/ab.html) 이라는 일종의 툴 인데, apache httpd를 설치하면 ./bin 디렉토리 내에 존재한다. 대략적인 사용법은 다음과 같다.
jmeter non GUI mode
[apache jmeter](http://jmeter.apache.org/) 라고 서버 Load Testing 툴인데, [사용법](http://codeigniter-kr.org/lecture/view/289/page/1)은 인터넷 보면 나와있다. 대부분이 윈도우 상에서 조건을 입력하고, 어떤 결과화면을 볼것인지를 설정하는 식으로 설명이 되어 있는데, 윈도우에서 설명한다는 약간의 아쉬움 점을 가지고 있다. 꽤 많은 테스트를 할 경우, 내 컴퓨터 상의 윈도우에서 테스트를 돌리다보면, 서버 보다 내 컴퓨터가 먼저 죽는 경우가 있다. 이
jinja template - extend block 이용하기
기존에는 `{%include "head.html" %}` 이런식으로 html 내 특정 부분, 즉 자주 사용하는 부분을 모든 페이지에 붙여서, `include` 지시자를 이용해서 가져오는 방식을 사용해 왔었다. 작은 프로젝트에서는 head.html 을 따로 두고 그 안에서 css 및 기타 `` 부분에 들어가는 코드를 작성해서 재활용 했었다.
[iOS] Change UISearchBar TextColor in iOS8
이상하게 가끔 objective-c 에서는 당연히 있을법한 함수를 제공하지 않는 경우가 있다. UISearchBar 에서 텍스트컬러를 변경하고 싶은데 stack overflow를 찾아보니 버전마다 조금씩 설정하는 방식이 다르다. 기존에는 subViews 를 루프 돌면서 UITextField 의 경우 찾는 방식이 있었는데 iOS8 에서는 먹히지 않는다.
왜 글을 쓸까?
이상한 모임 글쓰기 세미나에 참여한 이후, 왜 글을 쓰는가에 대해서 생각해 보면 그렇다. 원래부터 글을 쓰는것을 좋아했었는데 그 툴이 블로그가 된것 같다. 현재 나는 2개의 블로그를 운영하고 있는데 하나는 이곳 LAB84 고 다른하나는 네이버 블로그이다. 네이버 블로그를 싫어하시는 분들도 있겠지만 뭐 맛집 및 여행같은 경우 나도 네이버의 검색을 잘 쓰기 때문에 네이버 블로그도 그런 용도로 쓰고 있다. LAB84는 당연히 메인 블로그이면서 동시에 기술에 관련된 블로그이다.
UITableView section과 tableview cell 사이 뜨는 문제
[![스크린샷_2015-06-04_오전_1.24.39](https://farm9.staticflickr.com/8896/18409219728_a729291b6a_n.jpg)](https://flic.kr/p/u3L4E9)위와 같이 grouped 스타일로 커스텀 셀을 만들고 secion 을 두었을때 이상하게 그림처럼 마지막 테이블셀과 다음 섹션 사이에 뜨는 문제가 있는데, 이 문제에 대해서 찾아보니 처음에는 UITableViewCell 상에서
mod_wsgi libpython2.7.a could not read symbols bad value
#이상한 글쓰기의 이상한후기
[![blogging](https://farm1.staticflickr.com/55/160711313_01f4948420_z.jpg)](https://flic.kr/p/fcFSH)이상한 모임 5월 세미나 #이상한 글쓰기에 참가를 하였고, 평소에 글쓰기에 대해서 그리고 기술블로그를 운영해오는 입장에서 다른 사람들은 어떻게 운영하고 있는지에 대해서 궁금해서 유료임에도 불구하고 참가하게 되었다. 순서는 다음과 같았고, 간단하게 들은 내용을 요약해 보도록 하겠다.
optimizely를 이용한 A/B Testing
이번에는 optimizely를 이용한 A/B Testing에 대해서 간단하게 알아 보도록 하겠다.
싸다구 앱 업데이트와 개발 주저리
[새버전](https://itunes.apple.com/kr/app/ssadagu-imateu-hompeulleoseu/id903061010?mt=8)에서 어떤 기능이 있는지 여기에서 설명하기 보다는 [INDF(IDEAN AND DOGFOOT)팀 블로그](http://blog.indf.net/)에 게시될 글을 보면 될것 같다. 여기에서는 개발기라기 보다는, 지극히 개인적으로 느낀점을 적었다. 정말 지극히 개인적임을 미리 알린다. 작년에 버전 1.0 출시이후, 싸다구 앱은 꽤 많은 사용자(우리가 생각하기엔, 근데 서버는 멀쩡)를 모
Google Analytics 를 이용한 A/B Testing
### 방식
LocalStorage & SessionStorage
#### 개요
[동영상] - 양쯔 강의 악어 마윈의 성공 스토리
알리바바의 창업자 마윈에 대한 다큐멘터리이다. 갑자기 등장한게 아니라 10년전부터 있었다는게 놀랍고, 그의 자신감이 놀라울 따름이다. 1시간정도 투자해서 볼만한 동영상.
A/B Testing Tools
Google AnalyticsOptimizelyVWO사이트[http://www.google.com/analytics/](http://www.google.com/analytics/
A/B Testing 간단이해
**A/B Testing**
Python - Sum the elements for the indices of each list
리스트 안에 리스트가 있고 각 index 별로 합계를 구할일이 있어서 stack overflow 를 보고 짠 코드인데 원래 기존에 제공된 코드에서 None 이 있는 경우에 한해서 0 처리한것 뿐이다. 코드가 약간 길어진 느낌이 있는데 짧게 고쳐주실 분은 위의 gist에 들어가셔서 남겨주시면 감사(. .)
javascript get form data
조회창 같은것을 만들때 조회조건 항목이 많으면 일일히 id 주기 바쁜데, id 줄거 없이 그냥 class 이름 주고 radio 같이 선택해야 하는 것들은 따로 type 체크하고 checked 로 지정하면 된다. name을 키로 val()을 값으로 해서 객체를 만들고 그걸 그대로 ajax 에 쓰면 된다.
주워먹기 Pull Request 에 대해서
> [@krazyeom](https://twitter.com/krazyeom) 그게 말처럼 주워먹기 힘든 프로젝트였습니다 ㅠㅜㅜ [http://t.co/RkgntLz2uT](http://t.co/RkgntLz2uT) @dalinaum
[책] 바지벗고 일하면 안되나요?
![](https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F4.bp.blogspot.com%2F-XW_VcWfcbi4%2FVDS9yIQpO2I%2FAAAAAAAABVM%2FLKCxfTy4Aos%2Fs1600%2Fbook_02.png&container=blogger&gadget=a&rewriteMime=image%2F*)
Python: Tips, Tricks and Idioms
원문 : [Python: Tips, Tricks and Idioms](https://codefisher.org/catch/blog/2015/01/27/python-tips-tricks-and-idioms/?utm_source=Python+Weekly+Newsletter&utm_campaign=8416b188e6-Python_Weekly_Issue_176_January_29_2015&utm_medium=email&utm_term=0_9e26887fc5-8416b188e6-312692397 "Python: Tips, Tricks an
Python3 adoption for pyimgdown
[pyimgdown](https://github.com/AhnSeongHyun/pyimgdown) 이라는 wand 를 이용한 이미지를 다운받고 썸네일을 만드는 라이브러리를 파이썬2 버전으로 pypi에 올린적이 있었는데, 사실 그전에 이미지 땡겨와서 썸네일 할때 만든 라이브러리였다. 올해 목표중에 하나가 Python3 를 사용해 보는것이었고 아직 회사에서는 Python2 를 사용하지만 몇개의 개인프로젝트들을 일단 바꿔 보기로 했다.
[iOS] NSDATE-TimeAgo Usage
heroku rename and updating git
heroku는 신기하게 `create` 명령어 이후에 개인 공간에 앱의 공간을 만들어 주는데 임의의 문자와 숫자를 넣어서 만든다. 예를들어, 내가 만든 프로젝트는 loginabtesting 이라고 하면, `heroku create` 를 통해서 만들어진 앱의 이름은 `thawing-plain-5857` 이런 이름으로 만들어 진다. 당연히 프로젝트 이름은 설정에 가서 바꿀수가 있는데 바꿔 버리면 그 다음에 수정시에 배포(deploy)가 안되는 문제가 생긴다. 그래서 heroku 에서는 아래와 같이 앱의 이름을 변경시에 주의사항 툴팁을
Starting wordpress
정든 티스토리를 떠나기로 결정한 것은 예전에도 언급한적이 있지만, 티스토리의 답답함에서 비롯된것이었다. 그리고 워드프레스와 Automattic 사, 매트 뮬렌웨그와 바지를 벗고 일해도되나요? 라는 책을 보고 워드프레스로 옮겨가게 되었다. 늘 그렇듯 여러가지 걸림돌이 있어서 이사가기가 힘들었는데 이번에는 진짜 이사를 제대로 가보자고 굳게 마음을 먹었고, 이사과정에서 생긴 이슈들을 아래와 같이 정리해본다.
작업환경
몇번 인스타그램이나 사진 찍기를 좋아해서 올린적이 있지만 글과 함께 써보긴 처음인것 같다. 더군다나 이 글은 이상한 모임에서 #weird-writing 의 주제이자 내가 처음으로 워드프레스 닷컴으로 이사와서 쓰는 글이다. (이전 글들은 옮겨온 것뿐)
heroku에서 flask 올리기
heroku 를 아주 간단히 설명하자면 마치 서버를 가지고 있는것 처럼 웹의 공간을 대행해주는 업체인데, 클라우드 어플리케이션 플랫폼이라고한다. 특이하게 git 을통해서 올리고 내리고 함으로써 소스를 서버에 반영할 수 가 있다. heroku 에서는 python 부분은 기본적으로 django를 기본으로 하고 있는데 **[heroku에서 제공하는 flask 가이드](https://devcenter.heroku.com/articles/getting-started-with-python-o)**를 기본으로 해서 설명하겠다.
grunt 간단 사용기
#### 개요
[python] home(~) 경로 가져오기
#### python get user home path
[jquery] jquery.timeago.js 몇초전, 몇일전 계산하기
페이스북이나 최근에 SNS 및 뉴스에서는 특정 일자를 알려주기 보다는 과거의 상대성으로 시간을 표시한다. 예를들면 3일전, 2시간전 이렇게 말이다. 개발자가 일일히 보여지는 날짜 데이터에 대해서 계산해서 만들어 내야하는데 jquery.timeago.js 에서 이 기능을 지원해 준다.
bower 설치 및 사용하기, bower-installer
nginx-uwsgi 연동하기
### uwsgi – flask 기본 연동
[번역] How To Optimize Nginx Configuration(Nginx 의 설정 최적화)
Nginx 에 대해서 몇가지 관심을 갖다가 설정에 따른 성능향상, 영향에 대해서 쓴 글을 보게 되었는데 공부할겸 정리해 둔다. 거창하게 제목에 번역이라고 달았지만, 그냥 아는단어를 한글화 했다고 보면 된다. 아래의 링크는 원문링크이다. 오류가 있다면 댓글로!
nginx 설치 및 구동
### 개요
[js] jquery-number 3자리 금액 쉼표(,) 찍기
서버 단에서 해도 되겠지만, 프론트 단에서 괜찮은 라이브러리가 있어서 소개한다. 3자리마다 금액 숫자에서 쉼표를 찍는 라이브러리인데 쓰기가 쉬워서 메모해 놓는다.
[jquery mobile] 현재페이지 새로고침
페이지 이동후, ajax 호출해서 데이터를 넣고 데이터를 보여주는 부분을 갱신하고자 하거나 하는 등등의 현재 페이지를 새로고침할때 jquery mobile에서 쓰는 코드이다.
[SQL] Random Select
뭔가 가져오는 데이터 내에서 랜덤으로 가져와야 하는 경우 위와같이 `RAND();`함수만 붙여주면 된다.
uwsgi 기본 사용법 정리
### 개요
jinja template length , substring
때론 프론트 단에서 처리하는게 편리한게 있기에. 기억하고자 적어둔다. flask 에서 `render_template` 해야 하지만, length 와 substring 은 아래와 같이 쓴다. 그나마 substring은 비슷한데 length 사용법이 파이썬과는 다르다.
jinja template for 문에서 index 가져오기
보통 jinja template 에서 for 문을 사용하게 되면 아래와 같이 어떤 리스트 내에 아이템을 탐색하게 되고 리스트내에 아이템을 직접 가져오는데 index가 필요한 경우, 예를들면 특정 index 만 건너뛰고 싶은 경우가 있는데 그럴경우는 `loop.index` 로 접근해서 index를 가져올수 있다. 아래의 코드를 보면 이해가 쉽다.
[번역] 6 Python Performance Tips
> 원문 : [http://blog.newrelic.com/2015/01/21/python-performance-tips/?utm_source=Python+Weekly+Newsletter&utm_campaign=c403fa901e-Python_Weekly_Issue_175_January_22_2015&utm_medium=email&utm_term=0_9e26887fc5-c403fa901e-312692397](http://blog.newrelic.com/2015/01/21/python-performance-tips/?utm_sourc
centos yum remove httpd
centos 상에서 아파치 소스를 받아서 설치하다 보면 아래와 같이 redefinition 에러가 발생하는 경우가 있다.
[DB] mysql 덤프 및 복구
테이블락이 걸렸다. 왜 걸렸는지 살펴보니 로그 db 가 MYISAM 방식으로 되어 있어서 생긴 문제였다. 이미 수많은 로그를 뒤로하고 운영중인 DB 를 백업해서 INNODB로 변경해서 다시 만들까도 생각해봤지만, 그럴바엔 차라리 mysqldump 를 사용해서 운영서버가 아닌 개발 서버로 옮겨서 분석 작업을 하는게 나을것 같았다. mysqldump는 서비스에 상관없이 데이터 및 구조를 가져올수가 있다.
2014 이상한 모임 연말정산 뒤늦은 후기
CentOS 6.X Python 2.7 업그레이드
https://github.com/h2oai/h2o/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-exactly-for-centos-machine-only
[JS] jquery.cookie.js 자바스크립트 쿠키(cookie) 접근하기
`document.cookie` 를 통해서 자바스크립트(Javascript) 에서 쿠키에 접근할수가 있는데 쓰는 모양새가 매우 불편한다. 그래서 jquery 를 아무래도 거의 기본라이브러리 처럼 사용하다 보니 jquery 쪽에 찾아보니 기본 라이브러리에는 없고 jquery.cookie.js 라고 다른 개발자가 만들어둔 라이브러리가 있는데 매우 사용하기가 쉽다.
python json 기반 conf 파일 로드하기(object_hook)
conf 를 json 파일로 쓰는 경우가 있는데 주로 개인 프로젝트 할때 많이 쓰는 편인데 결국 conf 라는것을 환경설정 파일이기 때문에 파일로 가져와서 읽어야 하는 경우가 많다. 이 경우 json 을 바로 dict 으로 loads 해서 사용하게 되면 conf[“port”] 이런식으로 접근해야 하는데 object_hook 를 이용하면 객체의 형태로 접근할수가 있다. 좀더 코드가 깔끔해 진다랄까.
[펌] 안정적인 서비스 운영
python 3항 연산자
이걸 언제 쓰냐라고 생각했지만, 내가 오늘 이 글을 적게 될줄은 ‘나’조차도 몰랐다. 3항 연산자, 일명 if 축약 이라고도 하는데 사실 그리 쓸일이 많지는 않은데 flask 에서 유독 짜증나는 부분이 있어서 쓰게 되었다. flask 에서 함수를 구성하다 보면 초반에 하는 것중 하나가 request 객체에서 get 혹은 post 에 대한 데이터를 가져오는 작업이다. 일반적으로 get 의 경우 `request.args.get("id", None)` 이런식으로 가져오는데 get
python response data for flask
flask 로 작업하는 경우가 두가지인데, view 를 만들거나 아니면 json 형태로 api 결과를 리턴하는 경우를 만들거나. 그런데 첫번쨰는 머 `render_template` 사용하는 거고, 두번째 api 결과의 경우 보통 공통적인 api 결과 형식/포맷을 만들어서 반환하기 마련이다. 여러가지 방식이 있겠지만, 선호하는 방식은 meta 와 data 로 나누는 것인데 meta 에는 code 가 들어가는데 http status code 혹은 확장할 경우 확장코드가 들어가고 message 는 보통 에러의 경우 상세 에러메시지가 들어
python mysqldb DictCursor 이용하기
아무래도 제일많이 사용하는게 mysql 이고 python 으로 연동하기 위해서 MySQLdb 를 사용하는데 맨날 기존 cursor를 이용해서 데이터를 가져오곤 했다.
python create excel, add sheet
파이썬에서 엑셀(csv 형식이 아닌) 파일을 만들고 시트를 추가하는 코드인데 openpyxl 을 사용하는 코드이다. 파라미터로 전송되는 구조에 종속적인 함수이긴 한데, 간단하게 사용법을 적어두는 목적이기에. 좀 애매한 부분들중 하나는 첫 시트를 지우지 않으면 시트 추가시 Sheet 라는 이름의 첫 시트가 남아 있는 문제가 있
월급쟁이의 우버X이용기, 난 이렇게 탔다.
우버를 꼭 타봐야 겠다고 다짐하고 있었는데
2014/
[svn] svn log with diff yesterday
다른 사람의 코드를 보면 아무래도 이해를 더 잘 할수 있도 특히 같은 프로젝트나 같은 팀이라면 언어가 다르더라도 보는것이 좋다고 생각하는데 엄청 많은 저장소를 일일히 뒤져가며 볼수는 없다. 아래의 스크립트는 하루전의 커밋로그와 함께 그에 대한 diff 를 떠서 보여주는 파이썬 스크립트이다. 파일은 저장소 이름별로 만들도록 했는데 하나의 파일에 만들어도 되긴 하지만 diff 를 뜨게 되면 양이 엄청 많아진다.
flask logger decorator(데코레이터)와 함께 사용하기
###기본로그 세팅하기###
flask HTTP 에러 따로 메일로 받기
200 OK외에 다른 부분에 대해서 메일로 에러를 받아야 하는 경우가 있다. 물론 500 Server Internal Error 의 경우에는 로그를 보는게 제일 빠르지만, 저렇게 메일로 남기는 이유는 어떤 ip 에서 잘못된 접근을 하는지 보기 위해서 이다. 아래의 코드는 별다른 메일 서버 없이 리눅스 자체에 있는 sendmail 바이너리를 이용해서 호출하는 소스이다. 오히려 s
CentOS Apache2.4 설치
####Apache 2.4 설치####
python 리눅스 하드웨어 정보 가져오기
서버가 들어왔을때 처음으로 해야하는 작업이 서버 정보를 가져와서 남겨두는 작업인데, 솔직히 리눅스 명령어로 하는게 더 편하긴 하지만, 내가 그런 명령어에 익숙하지 않고, 파이썬이 더 익숙한 지라 아래의 파이썬 코드를 돌려서 수행하면 된다. 기타 리눅스 하드웨어 관련 정보 파이썬으로 가져올 경우  [http://amitsaha.github.io/site/notes/articles/python_linux/article.html](http://amitsaha.github.io/site/notes/articles/python_linux/
flask file download
자주 까먹는지라, 서버에 파일두고 단순 다운로드시 `send_from_directory` 함수 사용.
pyodbc-MSSQL 사용시, 한글 문제
[이전에 pyodbc 를 사용하는 부분](http://lab.ash84.net/post/99634203014/pyodbc-procedure)에 대해서 설명했었는데 이번에는 한글 insert 시 깨지는 문제가 생긴다. 이 문제의 해결을 위해서 사실은 사용하는 파이썬쪽, 그리고 돌아가는 리눅스의 LANG, LOCALE 설정, 그리고 PYODBC 와 FreeTDS, UNIXODBC 등의 설정을 모두 UTF8로 설정했음에도 불구하고 발생하는 문제였다. 한 2일 정도 고생하다가, 모든 내용을 StackOverflower 에 올렸다.
python Celery 기본 세팅
예전부터 써보고 싶었는데 관련 업무가 주어져서(정확히는 그냥 내가 쓰고싶은데 업무시간에 테스트 하고 싶어서) 정리해 본다. 그냥 아주 기본적으로 돌려보는 정도.
python 1000 단위 쉼표 찍기
잡다하기 문자열 수 세서 찍을수도 있겠지만. ㅎㅎ
기본 UIRefreshControl 및 Custom 라이브러리 소개
기본적인 UIRefreshControl 에 대한 사용법이다. UITableView에 addSubView:  하는것만으로도 쉽게 사용할 수 있다. spinner 의 색은 setTintColor 를 이용해서 설정할 수가 있고, backgroundColor 을 지정하면 끌어 당겼을 때의 배경색을 지정할 수가 있다. selector 로 지정한 함수에서 웹서비스를  호출하는 함수를 지정해
리눅스에서 pyodbc 이용해서 mssql과 연동하기
일반적으로 python-mssql 라이브러리들은 윈도우를 기반으로 동작한다. 이때 pyodbc나 pymssql 들은 내부적으로 윈도우에 설치된 SqlClient 등의 라이브러리에 의존하게 된다.
[python] 이메일보내기, unable to relay 문제 해결
파이썬에서 이메일 보내기에 대한 소스인데 아주 기본적인 코드다. SMTP 를 이용해서 지정된 다른 사용자에게 이메일을 보내는 소스코드인데 간단하게 사내에서 시스템에서 뭔가 발생이 되었을때 쉽게 서버관리자의 메일로 보낼수가 있다.(요즘은 메신저로 보내는게 일반적이어서)
8.18. pprint — Data pretty printer — Python 2.7.8 documentation
# [8.18. pprint — Data pretty printer — Python 2.7.8 documentation](https://docs.python.org/2/library/pprint.html)
[flask] robots.txt, sitemap.xml
static 디렉토리에 robots.tx, sitemap.xml 파일이 있다는 가정하에 사용하면 된다.
tumblr 에서 gist 넣기
위의 코드에서 보는것처럼 theme.html 안에 스크립트 적어주고 포스트 작성시, 저 규칙만 지켜주면 끝. 뭔가 깔끔하지 않지만. ^^;;
Ansible 간단이해
#개요
Python Weekly 159
파이썬 위클리에서 개인적으로 관심있는것들만 정리하였음.
Deview2014 Review
9/29일(월) 9:00 ~ 18:00
2014 제1회 파이콘 코리아(pyconkr)를 다녀와서.
신청할때는 갈지말지 일말의 여지가 없었지만, 문제는 그주에 여러가지 행사 예를들면 영종도에가서 드림카를 타본다는 등의 행사등이 있었지만 내가 선택한건 pyconkr 이었다.
ASP.NET 닷넷프레임워크 변경시, 패키지 재설치
> 경고 1 Some NuGet packages were installed using a target framework different from the current target framework and may need to be reinstalled.
ASP.NET WebAPI
[http://www.taeyo.net/Columns/View.aspx?SEQ=464&PSEQ=35](http://www.taeyo.net/Columns/View.aspx?SEQ=464&PSEQ=35)
파이어폭스 컨퍼런스 후기 #fxdevconkr
**Firefox OS 소개 – 신혁석**
한우찾기 2.4.5 iOS 업데이트
우연히 앱스토어에서 한우찾기를 검색해봤더니.. 다음 OpenAPI 지도가 오류가 난다는 리뷰 발견을 했고 다음측에 물어보니 자기네들도 모르겠다면 번들ID로 재신청해야할것 같다고 해서 일단은 번들ID로 재 신청하고 밀렸던 네이버 애드포스트 바이너리 역시 바꿔주었다.
pypi 올리기 정리
올릴때 마다 고생하는데 간단 정리
[python] Wand를 이용한 썸네일(Thumbnail)
이전 포스팅에서 [PIL](http://lab.ash84.net/1071) 을 언급하면서 혼자서 wand가 썸네일 만들기엔 더 편하다고 써놨는데, 한번 랩핑한 클래스이다. 공개하기도 민망하긴 한데.
PIL(Python Image Library) 설치하기
간단하게 썸네일을 만들어야 하는 작업이 있어서 python image  관련 라이브러리를 찾던중에 [PIL](https://pypi.python.org/pypi/PIL) 이라는 것을 발견했는데 설치 해야하는 부분에 문제가 생겨서 코멘트를 남긴다.
(ngrinder) mac osx 에서 ngrinder 설치하기
웹 서비스 부하테스트를 해야하는 작업이 있었는데 예전에 컨퍼런스에 가서 들었던 [ngrinder](http://www.nhnopensource.org/ngrinder/) 라는 툴이 생각나서 이번 기회에 익히면서 써보기로 하였다. 기본적인 설명이나 컨셉들은 본 글의 제일 하단에 Reference 부분을 참고하면 될것 같다.
(iOS) Category 란?
(cocoapods) [!] Pod::Executable pull 문제 해결
어느순간 cocoapods를 사용하다 보면, `pod install` 이라고 쳤는데 console 창에 빨간 글씨의 화면이 아래처럼 나올때가 있다. 이러면 `pod install` 로 인해서 workspace가 생기지 않게 된다. [대처법](http://stackoverflow.com/questions/18224627/error-on-pod-install)은 간단한데 cocoapods의 master repo 를 지우면 된다.
django-endless-pagination 을 이용한 페이징구현
페이징 기능은 사실 게시판에 있어서 필수적인 기능인데 구현하는데 있어서 겁을 먹게 되는것 같다. (나같은 초보 웹쟁이는 더 그렇지) django 에서 페이징 기능을 쉽게 추가할수 있는것이 있을까 싶어서 [djangopackages](https://www.djangopackages.com/) 에서 찾아 봤는데 pagination 이라는 단어로 검색했을때 search weight 가 78%인 [django-endless-pagination](http://django-endless-pagination.readthedocs.org/) 를
(iOS) UIImagePickerController Image & Video
매번 찾아서 쓰던건데 너무 귀찮아서 정리한다. 카메라나 동영상의 간단한 뷰를 띄우기 위해서 UIImagePickerController 를 사용하는데 사진을 찍는 방법, 동영상을 찍는 방법 및 아이폰 내장 포토 앨범에 저장하는 방법은 아래와 같다.
(iOS)MKPointAnnotation에 정보(i) button 달기
MKPointAnnotation 에 정보(i) 버튼을 추가하고 싶었다. 지도 관련 액션을 actionsheet 를 이용해서 하거나 다른 버튼을 이용해서 했었는데
(django) djangopackage.com
![](http://ash84.net/wp-content/uploads/1/cfile30.uf.257F4C5052D3A44C267839.png)
(django) inspectdb, 기존 테이블을 models.py 로 가져오기
많은 장고(Django) 예제에서 models.py 를 먼저 만들고 syncdb 를 통해서 실제 데이터베이스에 구조를 잡게 되는데 사실은 실제 데이터베이스에 이미 데이터나 구조가 있는 경우가 더 많은것같다. 그럴경우 일일히 models.py에서 데이터 모델들을 잡아주는것이 번거로운데(테이블이 많으니까) 장고에서는 inspectdb 라는 기능을 통해서 settings.py에 연결되어 있는 데이터베이스에 대한 models.py의 내용을 가져올 수 있도록 해준다.
2013/
(iOS) SVProgressHUD + NSTimer
[cocoapods](http://beta.cocoapods.org/?q=) 를 연동하면서 자주 사용하는 라이브러리에 대한 사용법을 정리해서 [github](https://github.com/AhnSeongHyun/Objective_Factory/tree/master/SVProgressHUDExample)에 올리고 있는데, 그 중에서도 단연 [SVProgressHUD](https://github.com/samvermette/SVProgressHUD) 는 네트워크 전송 혹은 앱
python travis-ci 와 github repository 연동하기
별거 없다. 파이썬 기준으로 설명
(iOS) TestFlight 사용해서 ipa 배포하기
(iOS) Localization 이후, could not load XIB 오류
일단 이 문제의 전제는 처음에 언어가 en 으로 설정되어 있었다는 가정하에 출발을 한다. 필자가 겪은 상황은 이렇다. en으로 되어 있는 상황에서 한국어, 일본어 등이 추가된다. 그래서 나는 Localized.strings 파일을 만든다. 이 파일의 역할을 지역화를 하는데 있어서 키-값을 저장하는 역할을 한다. 즉, “NAME”=”NAME”; 이라고 저장을 하면 기존의 @”NAME” 을 그대로 넣었던 것에서 @”NAME”을 키로 해서 값을 가져와서 넣는방식으로 한다. 그리고
(Django) Aptana Studio3 Django Not found 오류 해결법
Django 프로젝트를 만들려고 하는데 pip install django 로 django를 설치했음에도 불구하고
(python) daum_openapi 라이브러리 개발기
[Daum Open API](http://dna.daum.net/apis/dashboard) 중에서 데이터형 API 를 쉽게 쓸 수 있는 Python 라이브러리를 만들어서 pypi 에 등록을 하였다. 이미 Daum 쪽에서 python 으로 api를 호출할 수 있는 예제코드를 제공하고 있는데, 만들게된 계기는 아래와 같다.
Aptana Studio SVN error folder '' does not exist remotely 대처법
몇개의 서버를 사용하고 있고 각각의 서버에 SVN이 설치되어 있는데 Aptana Studio 에서 SVN 플러그인을 다운받아서 설치해서 잘 쓰고 있었다. 그런데 새로운 서버의 SVN 에 연결하려고 하니 연결은 되는데 소스 디렉토리를 클릭하니까 아래와 같은 에러가 발생하는 것을 확인 하였다.
(PHP) WKLogger(Wrap KLogger) 로 로그 남기기
php 로거를 찾고 싶었다. 기존 개발자가 response 를 보내야할 페이지에 로그를 출력하는 만행(?) 을 저질르고 있었고 일단 해야하는 작업(지금도 하고 있는 작업)은 파일 로거를 도입하는것이었다. 당연히 내가 구현하는것 보다는 있는것을 쓰는게 편한데 찾아보니 [KLogger](https://github.com/katzgrau/KLogger) 라는것이 있었다. 사실 지금 생각해 보면 좀더 찾아볼껄 하는 생각이 들었는데 쓰는 방식이 log4j 와 흡사해서 채택하게 되었다.
(iOS) NSMutableArray + Delegate
별 다른건 아니고 Objective-C 에서 데이터를 관리할때 사용하는 자료구조인 `NSMutableArray` 를 자주 사용하는데 네트워크 요청이나 위치 서비스 요청을 위한 큐(Queue)를 만들때 최근에 주로 사용해 왔다. 특히 하나의  `NSMutableArray` 를 감싸서(wrapping) 사용하는데 주로 singlet
(iOS) NSTimer 사용하기
개인적으로 타이머를 그렇게 좋아하진 않는다.(다들 개인적으로 좋아하지 않는 프로그래밍의 한 부분이 있을것이라 생각됨.) 사실 어떤 이벤트가 발생했다는 것을 타이머를 통해서 감지하거나 하는 경우가 있는데 그런 부분에서 잘 사용하진 않는다. 이유는 Objective-C 에는 delegate 라는 막강한 놈이 있고, 그게 아니라면 `NSNotificiation` 을 사용하는 것도 나쁘진 않다.
(iOS) NSCopying 프로토콜 구현하기
어떤 사용자 정의 클래스의 객체 자체를 copy 해야하는 경우가 있다. 그럴때 사용하는 것이 `NSCopying` 프로토콜이다. 객체를 복사할때는 `
(iOS) 애플맵 길찾기(navigation) 기능 호출하기
다양한 지도 어플들이 있고 그러한 지도 어플 업체나 플랫폼 업체에서 sdk 를 제공하긴 하지만 사실 약간의 문제들이 있다. 예를 들면, 전세계를 대상으로 앱을 만든다고 하면 우리에게 친숙한 네이버나 다음같은 앱을 이용해서 길찾기나 외부 지도앱을 불러올수가 있다. 설령 해당 사용자의 아이폰에 설치가 되어 있다고 해도 해당 지역의 경우 지원이 안될수가 있기 때문에. 무적의 구글맵이 있긴 하지만, 아이폰에서 사용자가 다운을 받아놔야 한다는 단점이 있는데, 애플맵은 기본 설치된 상태
(flask) Pluggable View, Class 에서 요청처리하기
[Pluggable View](http://flask.pocoo.org/docs/views/?highlight=as_view) 라고 말이 어려운데, 간단하게 말하자면 flask 는 기본적으로 url 과 함수의 맵핑으로 이루어져있다. 아래의 Quick Start 에서도 보면 알겠지만, url “/ ” 는 hello_world() 라는 함수에 맵핑이 되어 있어서 / 로 들어오게 되면 hello_world() 함수로 들어오게 된다.
(python) usage logging
flask 관련 작업을 하면서 로깅을 어떻게 할까 하는 생각이 있었는데 python 에 기본적으로 logging을 탑재하고 있어서 이렇게 사용법을 올린다. 별 다른 건 없고, basicConfig 라는 것을 통해서 filename, filemode, level 을 설정할수 있는데 file 관련 설정을 하지 않으면 stdout 으로 출력되게 된다. 자세한 사항은 [http://docs.python.org/2/library/logging.html](http://docs.pytho
(iOS) crashlytics 을 이용한 crash 관리 및 github 연동
vingle 에 갔을 때, 앱 개발 관련 소개를 들으면서 crashlytics 라는 서비스가 있다고 해서 메모해 두었는데, 실제 업무에 적용해 보았다.([crashlytics 는 트위터에 인수되었다고 한다.](http://besuccess.com/2013/01/28496/))
(python) try ~ except and trace
이상하게 파이썬을 빨리 빨리 뚝딱 만드는 언어로 많이 쓰는데(사실 나도 그렇게 쓴다.) 그런데 간호 pypi 에 올려서 욕을 안먹으려면 예외 처리를 해야한다. 당연한 애긴데. ㅎㅎ 아무튼 위의 소스코드를 보면 try: ~ except: 문으로 묶는 것이 기본이다. catch 에 해당하는 것이 except 라고 보면 되는데, Java 처럼 자세히 나
(flask) jinja2 {% include %} 활용
대단한건 아니고, flask 는 기본적으로 jinja2 를 템플릿 언어로 사용하는데 사용하다 보면 하나의 template에서 공통적으로 사용되어 지는 부분이 있다. 예를 들면, 같은 css 나, 자바스크립트를 가져오는 header의 부분이나 상단의 navigation 부분, 하단의 footer 부분이 그러한데 일일히 모든 템플릿에 넣어 주기는 귀찮다. 그래서 jinja2 에서는{%  include %} 를 통해서 하나의 html 에서 다른 html 을 가져올수 있도록 해준다.
(flask) tornado 서버 적용
다들 아시겠지만 flask 내장 서버는 구리고, 사실 어쩔때는1번 이후에 접속이 안될때도 많다. 그래서 flask 문서에서도 배포에서는 사용하지 말라고 권장하고 있기 때문에 tornado 서버를 붙일수가 있다. 여타의 다른 서버를 붙일수가 있는데 링크를 확인하면 된다.
(iOS) cocoalumberjack 를 이용한 logger 탑재
NSLog 의 지겨움을 느끼던 차에 로거가 필요하다는 생각은 늘 하고 있었지만 문제는 언제 도입하느냐였는데 만들고 있는 것이 블루투스 앱인지라, 로그를 세세하게 받아야 하는 급박한 상황이 생겨서 로거를 넣자는 생각을 하였다. stackoverflow, [OSXDEV](http://osxdev.org/forum/index.php?threads/logger-%EC%B6%94%EC%B2%9C%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94.279/) 등에 문의를 한
(iOS) char * to NSString
(iOS) background/foreground, RemoteNotification 구별하기
(iOS) 백그라운드 관련 이슈 정리
블루투스와 연결되어서 동작되는 앱을 어떻게 백그라운드에서 유지 시킬것인가 하는 것에 대한 물음이 있었고 여러가지 문제가 있었다. 이 글은 그에대한 여러가지 시도의 방법 그리고 해결방법(도움이 될지)에 대한 내용의 정리이다.
(WWDC2013) CoreBluetooth 관련 자료
[cfile7.uf.2128583F5253C8751B8727.pdf](http://ash84.net/wp-content/uploads/1/cfile7.uf.2128583F5253C8751B8727.pdf)
(flask) static 파일 지정
gist 하나에 다 넣어서 설명하자면, main.py 에서 먼저 static_folder 를 static 으로 지정해 주고 실제 프로젝트 폴더 내에 static 을 만든다. 그리고 css, js 폴더를 static 하위에 만들고 관련 파일들을 배치한다. 그리고 html 내에서는 url_for 를 이용해서 지정해 주면 된다.
(CSS) pattern style
![](http://ash84.net/wp-content/uploads/1/cfile23.uf.2168AA3E5251DD0433ED45.png)
한우찾기 2.4.0 iOS7 개발기
아이폰5가 나오면서 5인치에 대한 지원 그리고 파싱 부분에 대한 에러가 있어서 할까 말까 하고 있었는데 iOS7 이 되면서 기본적인 UI 컴포넌트가 Flat 스타일로 변경이 되고 해서 한우찾기 역시 2.4.0 버전으로 업그레이드 하게 되었다. 몇가지 특징점을 설명하고자 한다.
(iOS) UIView border
(iOS) UIView 둥근 사각형
UIView 계열에 모두 적용된다. UIImageView도 마찬가지. 자꾸까먹어서 메모.
iBeacon 관련 기사 및 동영상 정리
iBeacon 은 간단히 말해서 BLE(Bluetooth Low Energy) 를 활용한 기술인데, 블루투스는 우리가 모르는 사이에 4.0 이 되었고 저전력 소모 방식이 개발된것 같다.(자세한건 모른다.) 그런데 아래의 링크들을 보면 NFC 에 비해서 오히려 더 성공할 가능성이 크다고 이야기 하는 이유는 NFC는 스마트폰을 대야하는데 블루투스는 신호를 발생시키기 때문에 아이폰에서 그 신호를 받아서 여러가지 정보를 보여주거나 할수 있기 때문에 더 가능성이 크다고 한다. 뭔가 됐
(iOS) UIAlertView TextField 추가 및 키보드 변경
어떤 정보를 수정하거나 할때 뷰를 Navigation 으로 열어서 하는 방법들이 있겠지만 일단 가장 쉬운것이 팝업이고 iOS에서는 UIAlterView 로 그런것들을 대신할 수 있다. 여기서는 UIAlertView 에서 UITextField 를 사용하는 법을 정리하고자 한다.
iOS7 이후, 팀쿡, 아이브 인터뷰 내용.
![](http://ash84.net/wp-content/uploads/1/cfile24.uf.225B864C5243734C1E25E8.png)
github.io 페이지 만들기
github 는 소스를 관리하고 이슈를 관리해주는 역할을 기본적으로 해준다. 기존의 svn + trac 의 조합으로 사용해야 했던 부분을 github 내의 소스 레포지토리를 사용하면 편하게 이슈와 소스를 연결해서 사용할수 있다. 또다른 특징중 하나는 정적 페이지 호스팅을 한 계정에 한해서 지원한다는 점인데, 이것은 유료, 무료에 상관없이 모두 지원을 한다.
(iOS) SVProgressHUD 를 이용한 팝업 보여주기
UIAlertViewController를 이용할수도 있겠지만 좀더 세련된 앱을 만들려면 조금이라도 이쁜 모냥새를 보워주는 것이 필수적이다. 그래서 SVProgressHUD 를 주로 팝업이나 로딩시 이용한다.
(iOS) 바코드 인식 라이브러리 ZBar 사용법
한우찾기 앱은 처음부터 ZBAR 라이브러리를 사용해 왔었는데 그동안 정리할 기회가 없었는데 이번 기회에 사용법에 대한 부분을 정리하는 포스팅을 하려고 한다. 나두 자꾸 까먹어서리.
(javascript) 링크 열기
a 태그를 href에 적용해 주면 되는데 button 은 어떻게 연결을 해야하니 찾아보니 onClick 이벤트에서 javascript 함수를 호출하고 그 함수에서 링크를 윈도우에 여는 방식으로 해야한다는 것을 알았다.
(iOS) AVAudioSessionCategory 정리
다들 알다시피 AVAudioSession 이라는 것을 통해서 iOS 내에서 음악을 재생하는데 `AVAudioSessionCategory `라는 것에 대해서 알아둘 필요가있다. 이것이 왜 중요한지에 대해서 일단 일화를 설명하자면
(iOS) Singleton + NSCoding 자주쓰는 방식 정리
자주쓰는 나만의 방식(?) 이라서 정리하는 것인데, Singleton 을 이용하는 이유는 여러 클래스에서 하나의 객체로 접근하고 싶을때 사용하고 NSCoding 라이브러리를 이용해서 encoding, decoding 을 해서 save, load 함수에서는 사실상 아이폰 앱내 설정 `NSUserDefault` 를 이용해서 저장하고 읽어오면 편하
(iOS) 기본 숫자형 NSDictionary에 넣기
NSDictionary는 키-값 형태로 데이터를 집어넣는것인데, 객제형은 잘 들어가는 대신에 이상하게 int, double과 같은 경우에는 setValue 함수를 사용해도 XCode 에서 에러라고 표시를 한다. 그런 경우에는 아래와 같이 NSNumber 로 한번 감싸주면 된다. int, float, double 등에 맞게 사용하면 된다.
(iOS) JSON문자열 NSDictionary 변환
JSONKit 등의 라이브러리가 있지만 사실 작은 프로젝트에서 연동해서 쓰려면 귀찮은 감이 있어서 찾아보니 Objective-C 에서 제공하는 방법이 있다. 간간히 쓰자.
(iOS) TableViewCell 선택시, 색변경.
SelectionStyle을 지정할 수 있는 것으로 알고 있는데, None, Gray, Blue 이렇게 지정할 수있는데 다른 색을 주는 방법을 찾아보니 아래의 방법이 있었다. cell 자체에 selectedBackgroundView 라는 속성에 새로 원하는 색을 가진 UIView를 만들어서 연결 시켜주면 된다. 커스텀 셀을 만들때에는 해당 클래스 안에서 넣어주면 된다.
(iOS) iPhone5용 zbar 다운로드
바코드 인식 라이브러리인데, iPhone5 에서 arm7s 부분에서 이상하게 에러가 나는 것을 최근에 확인을 했는데 어쩌나 어쩌나 하는 중에 검색을 해보니 이미 다시 빌드해서 올려놓은 [차카신 분](http://yuns.me/blog) 발견.
(iOS) UIActivityController 을 통해서 공유를 쉽게하자.
다시 앱과 서비스 개발에 매진을 하고 있는데 최근에 한우찾기 iOS7 작업을 진행하고 있는데 `UIActivityController`를 사용한 경험에 대해서 공유하고자 한다. 일단 아래의 불편한 진실을 보고 시작하자.
나의 둔촌주공아파트
발단은 하나의 트위터에서 시작되었다.
(flask) http get url 처리
당연히 최근에는 오픈API나 혹은 간단하게 웹 서비스를 구성한다고 하면 Http Get 방식으로 데이터를 전달하는데 flask 에서는 다음과 같이 처리 할수 있다. `@app.route()`함수에서 어떤 메소드를 사용할 것인지 지정을 해주고 나면 `request.args.get()` 함수를 통해서 해당 url 로 넘어온 데이터를 가져올 수 있다.
(iOS) MkMapView 기본 마커 및 CLGeocoder 이용하기
아래의 코드는 사실은 리스트뷰에서 어떤 아이템을 선택했을때 발생하는 delegate 함수에서 동작하는 코드이다. 간단한데, 선택한 아이템은 기본적으로 위도와 경도를 가지고 있고 아래의 코드에서 하는 일은 누르면 해당 위도와 경도에 해당하는 주소를 가져오고, 해당 위치에 기본 핀마커를 삽입하고, 지도를 해당 위치로 확대하는 작업을 한다.
(javascript) HTML5 geolocation 사용하기
(SQL) 직선거리에서 가장 가까운 냉면 맛집
인터넷 매쉬업을 참가했는데 현재위치에서 가장 가까운 어떤 맛집을 찾으려면 어떻게 해야할까? 고민해 보다가 찾아보니 직선거리 말고 지구는 둥그니까 다른 계산법이 있는 것으로 확인되긴 하였다. 그러나 나는 직선거리 방식을 사용했다.(더차피 지구는 완전히 둥글진 않으니까) 아래의 코드를 보면 쉽게 이해가 될듯.
(python) image download conv base64
base64로 변환을 해야하는 이유부터 설명하자면 간단하다. 이미지의 경우, 파일서버에 저장하는 것이 최고의 방법이긴 하지만 다들 알다시피 서버의 용량 문제가 있어서 OpenAPI를 이용해서 데이터를 가져오게 되는
(flask) helloworld.py
pip install flask
(iOS) tableViewCell avoid select event
touch 이벤트를 기본적으로 TableViewCell  을 customize 해서 사용할때 받게 되는데, TableViewCell 내 버튼같은 컨트롤들이 의도하지 않게 이벤트에 의해서 선택이 되어지는 문제가 있다. 즉, cell 자체의 touch 이벤트가 전달되는 것인데, 의도하지 않는 문제를 일으킬수 있다. 아래처럼 설정을 하면 선택을 해
mac port 설치하기.
yum, apt-get, make 같은 명령어를 사용하기 위해서는 mac port 라는 것이 필요하다. [이곳](http://www.macports.org/install.php)에 가면 각 OSX 버전 별로  .pkg 설치 파일을 받을 수 있도록 되어있다. 설치를 한 후에 해주어야 할일은 링크의 웹 페이지에도 잘 나와있지만
iOS7 beta4, 블루투스 관련 문제
최근에 알바식으로 iOS7 앱 변경 작업을 하고 있는데 블루투스 쪽에서 좀 이상한 부분이 있어서 일단 포스팅을 한다. 문제의 현상은 `CBCentralManager` 객체를 통해서 주변의 블루투스 기기를 찾은후, 연결 하려는 기기에 대해서 연결을 한다음에 기기에 해당하는 객체인 `CBPeripheral` 에 writeValue 로 어떤 값을
(Hadoop) standalone 모드에서 wordcount 실행하기.
wordcount 말 그래도 단어수를 세는 것으로 하둡의 기본적인 예제이다. 하둡의 hello world 라고 해도 좋을것 같다. 기본적으로 예제가 담긴 jar파일을 가지고 있어서 굳이 찾을 필요는 없고, 분석 대상 텍스트 파일을 input이라는 디렉토리에 넣어두자.
(Hadoop) 설치하기.
하둡을 그 많은 사람들이 설치 및 wordcount 예제 돌리는 부분을 올렸는데, 내가 올린다고 뭐가 그리 대단한 포스팅따위가 되리라고 생각하진 않지만, 자의반 타의반으로 정리해야 하는 상황에서 부족한 부분이 있겠지만 일단 정리한다. **분명히 말해두지만, 개인정리용이고, mac osx  상에서 개인적으로 개발 테스트를 위함이니 따라하지 마시길. **
(mysql) mac 에서 mysql삭제하기.
![](http://ash84.net/wp-content/uploads/1/cfile28.uf.2323793651FD2A151C7CEE.png)편하긴 편하다.
#인생이라는 여정.
[![family travel](http://farm1.staticflickr.com/55/182763318_2f9603acbc_z.jpg)](http://www.flickr.com/photos/smif/182763318/ "family travel by smif, on Flickr")
페이스북 담벼락은 링크 요약을 어떻게 가져올까?
페이스북이 처음 내가 쓰게되었을 때 가장 신기했던 것은 친구를 찾는다는 것? 친구와 관계를 맺는 다는 것? 친구의 활동이 싸이월드처럼 내가 가서 확인해야 한다는 것? 그런 것들이 아니였다. **단 하나 신기했던 것은 글을 쓰는 창에 url 을 넣게 되면 요약(summary)가 나온다는 점이었다. **
(python) opengraph 라이브러리 리뷰
사실 [오픈그래프](http://ogp.me)라는 것에 대해서 알게 된것은 [전 포스팅](http://ash84.tistory.com/1000)에서 말했지만 우연한 기회였다. 난 그때만 해도 여전히 오픈그래프에 대해서 신기해하고 있던 터라 구글 검색을 해보았는데 파이썬 기반 오픈
(python) html unescape
HTML 가져온 것을 화면에 보여주거나 할때 반드시 해야하는 작업중에 하나가 바로 언이스케이프작업(Unescape) 이다. HTML 안에 특수 문자들은 어떤 일련의 문자열로 표현이 된다. 예를 들면, ” ” 공백은    <, > 은 < > 이런식으로 말이다. 그렇기 때문에 저런 문자들이 원래 우리가 이해하는 특수문자로 바꿔주는 작업을 하는데 그것을 unescape 작업이라고 한다. 반대로 특수문자들을 일련의 약속된 문자열로 바꾸는것은 escape 작업이다.
(python) 사전 정렬 dictsort.py
사전 구축작업 같은것을  있는데, 사실 정렬을 하고 뭔가 필터링 시에 이진탐색등의 방법으로 찾는것이 빠르긴 하다. 때문에 사전 구축작업시에 아무래도 정렬을 하는게 좋긴 한데, 사람손으로 하기엔 사전의 양이 많아지면 많아 질수록 힘들다. 아래의 코드를 보면 알겠지만, `-f file `또는 `-d directory` 등의 옵션으로 파일하나 혹은 사전이 있는 디렉토리 자체를 지정할 수 있도록 하였다.
(알고리즘) 합병정렬
합병정렬(merge sort)는 분할정복기법을 사용하는데, n개의 원소를 1개 단위가 될때까지 나누고 병합하면서 정렬하는 방식이다. 아래의 그림을 보면 이해가 빠를것 같다. 시간복잡도는 O(n log n)이고 단점이라면 분할과 병합시의 다른 정렬보다 별도의 공간이 더 필요하다는것이 단점이라고 한다.
(알고리즘) 선택정렬
선택정렬(SelectionSort) 라는 건 하나를 선택하고 나머지에서의 최소값과 비교해서 정렬하는 방식이다. 간단한 편이고 현재위치외 다른 값들에 대한 최소값을 구하기 때문에 시간복잡도는 O(n^2) 이 된다.
(알고리즘) 버블소트(Bubble Sort)
버블소트라고, 우리나라 말로는 거품정렬이라는 어색한 말인데, 사실은 그냥 자연스러운 정렬방식이다. 알고리즘을 모르는 사람에게 정렬에 대해서 한번 생각해 보라고 하면 나오는게 이 버블소트이다. 내용 자체는 어렵지 않은데, 쉽게 보면 알수 있는 유투브 영상을 투척한다. 한번 동영상으 보고 짜보는 것도 나쁘지 않은듯.
(python) webkit2png, webpage screenshot
원래는 이것을 찾으려고 한게 아니고, 웹 페이지에서 여러가지 정보를 가져오는 스크립트를 찾던중에 찾은 재밌는 일종의 툴인데, **파이썬 기반으로 지정한 웹 페이지의 스크린샷을 뜨는 작업**을 해준다.
(shell) 쉘 스크립트 프롬프트 변경하기
쉘에서 프롬프트를 변경할일이 있을까 싶기도 하지만 어떤 서버의 경우 요상하리 만큼 로그인후 쉘의 길이가 긴 경우가 있다. 그냥 쓰면 될껄 왜 변경하느냐 하는 분도 있겠지만 길이가 길면 터미널 창에 잘 들어오지도 않고 자바 같은 경우 실행시 좀 짜증나게 되서. 쉘 변경하는 내용을 올린다.
(알고리즘) 시간 복잡도
오랫동안 비 전공자인 나를 괴롭혔던 문제들인데 인제 좀 정리를 하려고 한다. **시간복잡도와 공간복잡도 문제는 알고리즘을 측정하는 계산법이다. **생활코딩도 있고 code academy 도 프로그래밍에 대해서 알려주지만 이건 어쩌면 기본적인 프로그래밍을 배우고 나서 언젠가 마주해야할 문제중 하나라는 생각이 든다. (잡설시작) 나 역시 프로그래밍을 사용법 위주로 해왔지만 어느 순간 데이터와 마주하게 되면서 더이상 for 문의 순차 비교만으로는 원하는 성능이 나오지 않는다. 나는
(stackoverflow) how to improve select performance in mysql?
StackOverflow 를 자주 이용해 오진 않았지만 최근에는 다른 개발자들의 이야기를 들어 보기 위해서 내가 해결한 어떤 문제라고 할지라도 올려서 물어보고 있다. 영어 공부가 된다고 생각하지는 않지만 물어보기 영어 레벨은 올라갈듯. 결국 검색도 실력.
FRENDS MeetUp에 다녀왔습니다. ^^
평소에 트위터로 개발자분들을 모니터링(?) 하는 편인데 좋은 글을 많이 올리시는 분들이 FRENDS Meetup 을 여신다고 하길래 오늘 가보게 되었습니다. 지난주 정도 부터 온오프믹스를 통해서 참여여부를 받았는데 특이한 점은 보증금 제도다. 10000원을 입금을 하고 메일을 보내면 등록이 되는데 다시 오면 돌려주는 제도. 결과적으로 봤을때 참가를 적극적으로 유도할 수 있는 방식이 아니였을까 싶다.
(sql) Distinct 중복제거
SQL 쪽 공부를 최근에 벼락치기로 했는데, Distinct 에 대해서 약간의 이해가 안되서 정리할겸 올린다. 용어를 찾아보면 중복제거라고 하는데, 말 그대로다. 반대로 all 이라는 것이 있는데 이건 select 문에서 아무것도 지정하지 않아도 되는 것이다.
(mysql) mysqldump 을 이용한 백업 스크립트
mysql 에 데이터가 쌓이다 보면 확실히 정해야 하는것중 하나가 백업 정책인것 같다. 특히 스타트업이나 개인 프로젝트에서 서버를 임대해서 사용하는 경우, 서버용량에 제한이 있다보니 어느정도 데이터가 쌓이다 보면 백업에 대해서 고려하지 않을수가 없다. 내가 세운 백업정책은 1일 1백업, 즉 일일백업인데, 사실 아직은 데이터가 많지 않은 상황에서 할수 있는 무식한 방법이다. 아래는 mysqldump를 사용한 백업 스크립트인데, 매일 오전 12시30분에 실행이 되도록 cronta
(mysql) insert 시간 자동 추가하기
데이터베이스 입력 시간이 중요할때가 있다. 예를 들면, 어떤 데이터를 수집한다고 할때, 일별 혹은 시간별 데이터를 뽑기 위해서는 입력시간 컬럼을 넣어주는 것이 필요하다. 프로그램상에서 Date 형으로 넣어 줄수도 있겠지만, SQL 은 짧으면 좋다고, INSERT OR UPDATE 시 자동으로 시간을 추가하는 방법을 사용하면 더 좋은것 같다.
(mysql) Data truncation: Data too long for column 'xxx' at row 1
(maven) jar-dependency 복사하기
필자의 경우 자바 서버쪽에서 java -jar 로 만든 jar 파일을 만드는 경우가 있는데 그때에 maven 으로 연동한 라이브러리들을 모두 가지고 있어야 제대로 구동이 된다. 때문에 pom.xml 에 다음의 부분을 추가해서 jar 를 만들고 target/lib 에 연동된 라이브러리들을 배치(복사) 하도록 해야 한다.
(Java) Thread, Runnable 콜백함수
최근에 [자바 네트워크 관련 책](http://book.naver.com/bookdb/book_detail.nhn?bid=1583597)을 보고 있는데(조금 옛날책) 스레드에 관련된 내용이 나와서 정리한다. [이전에 ExcutorService 에 대해서 썼을때](http://ash84.tistory.com/933)는 Runnable 의 run()함수가 void 형을 리턴하도록 되어 있기 때문에 결과 값을 받을수 없다고 설명했었는데, 이 책에서는 콜백 함수를 이용해서 각 스레드
(vert.x) verticle에 설정 전달하기
Verticle을 상속받는 클래스를 만들어야 mod 의 형태나, 일반 파일의 형태로 전달해서 띄우던지 할수가 있는데, Verticle 클래스에서는 `container`라는 객체가 있다. 이 객체가 하는 일은 말 그대로 어떤 것을 담고 있는 클래스인데, 가장 중요한것이 앞서서 말한 logger 이고, 다른 하나는 conf 이다.
(Java) RSS 파싱 라이브러리 ROME
티스토리 톡 폰트 테스트
티스토리 톡 폰트 테스트
(github) branch 지우기
TistoryTalk 에 언제인지 모르는데 brach를 떠놓은 것이 있는데, 필요없다고 삭제 할려고 하니까, github for mac 을 통해서 생성했는데, 삭제는 없는것 같아서 찾아보니, 아래와 같은 명령어로 삭제 할 수가 있다.
(vert.x) JUL 대신에 slf4j-log4j 사용하기.
log 관련 이전 포스팅을 일단 언급하자면 아래와 같다.
(vert.x) logging.properties 파헤치기
앞선 포스팅에서 logging.properties 를 이용해서 로그파일인 vertx.log 파일의 위치를 변경하였는데 이번에는 logging.properties내 설정된 다른 항목들을 보도록 하자.
(vert.x) vertx.log 로그파일 위치 변경하기
vert.x 로그에 대한 내용은 [여기](http://vertx.io/manual.html#logging)를 참고를 하면 된다. 요약하자면
(iOS) AutoCompleteKor, 한국어 자음/모음 풀어쓰기 기반 자동완성 오픈소스
간간히 자동완성이 필요한 경우가 있다. 어떤 정보를 검색할 때가 그러한 경우라고 볼수가 있는데, 사실 자동완성이라고 하는 범위는 너무 넓다보니 하나의 커다란 서버가 필요하기도 하는데, 여기서는 iOS 상에서 한국어 풀어쓰기 기반의 자동완성을 소개하려고 한다.
(vert.x) mod-sample을 이용한 module 만들기
[지난 포스팅](http://ash84.tistory.com/969)에서 vert.x module을 mod-sample 이라는 잘 만들어진 어떤 것을 이용해서 간단하게 나마 테스트 해보는 시간을 가졌었다. 여러가지 설정을 해야하는데 gradle(나중에 따로 다뤄야 할듯) 등등 그런 작업들을 쉽게 할수 있도록 구성 된것으로 이
(iOS) 날짜에서 요일 가져오기
(iOS) 문자열에서 md5 추출하기
TistoryTalk v0.3 테스트
TistoryTalk v0.3 테스트
(vert.x) mod-sample 따라하기
아직까지 vert.x에 대한 자료가 많지는 않은데, 설치 이후에 실제 서버를 돌려보기 위해서는 mod 라는 것을 만들어야 하는데 gradle로 되어 있어서 개발 환경 꾸미기도 쉽지 않은것 같다. 그래도 [h](http://helloworld.naver.com) [elloworld.naver.com](http://helloworld.naver.com)에서 vert.x 에 대해서 보고 (최근에 다른 글이 하나 더 올라왔다.) 글 쓰신 분이 운영하시는 블로그에서 [mod-sampl
(CSS) <code> 태그에 대한 CSS
트위터 부트스트랩에 있는 `` 태그에 대한 스타일이 이뻐서 훔쳐왔음. 블로그 스킨 CSS 에도 사용하면 좋음.
(iOS) JSONKit ARC 상에서 작업하기
다음 티스토리 API 연동중에 JSON 으로 연동하는 과정에서 JSONKit 라이브러리를 사용하고 있었는데 이 라이브러리는 아쉽게도 ARC로 작성되어 있지 않다. 하지만 JSONKit은 자기네들 말로는 Objective-C JSON 처리 라이브러리 중에서는 가장 빠르다고 하니 안 쓸수도 없는 노릇([성능평가자료](https://github.com/johnezang/JSONKit)).
(강추)검색엔진 및 검색 프로젝트 관련 이야기
필자가 쓴 글은 아니지만 지인분께서(검색엔진 및 관련 검색 프로젝트 유경험자) 재밌게 쓰신 검색엔진 및 관련 프로젝트에 대한 이야기가 있어서 추천하고자 한다.(제목에 링크가 달려 있습니다.)
(vert.x) 설치하기
![](http://ash84.net/wp-content/uploads/1/cfile6.uf.2670863A5190979F07179B.PNG)
(iOS) 한국어 자소분리
자동완성 관련 작업을 하다가,(조만간에 간단한 형태의 오픈소스로 배포 예정) 한국어의 풀어쓰기 관련 이슈가 있어서 인터넷에서 있는 예전 소스를 Objective-C 기반으로 작업을 하였다. 한글 혹은 한영숫자가 섞인 입력 문자열에서 한글만 찾아서 자소 분리를 하는 소스코드이다. NSMutableString 을 이용해서 자소들을 이어붙이기를 하였다.
(iOS) 회전을 하면서 UIViewController 띄우기
단일 뷰 어플리케이션 같은 경우, 설정뷰를 보여주려면 그냥 아래에서 위로 올라오는 것 보다 회전하는 애니메이션을 주면서 보여주는 것이 훨씬 보기에 좋다.(주관적인수 있음) presentViewController 를 이용해서 UIViewController를 보여주면 그냥 아래에서 위로 올라오지만 아래와 같이 보여줄 ViewController의
(iOS) Insert image to UINavigationBar
좀더 이쁜 NavigationBar를 만들기 위한 방안인데, 자주 쓰는 코드는 아니지만 쓸때 자꾸 까먹어서 포스팅 해둔다. 이 방식의 문제점은 NavigationBar 에 이미지를 넣을수는 있지만, 왼쪽 오른쪽 BarButton 의 경우 이미지와 색이 잘 안어울릴수 있음을 알리는 바이다.
(iOS) 클래스를 통째로 저장하기, NSCoding
단순히 문자열을 저장하는 것만으로 앱내 데이터 저장에는 확실히 한계가 있다. 그리고 문자열을 저장하고 읽어올때 다시 파싱을해서 읽어오는 방식은 그리 달갑지도 않고 빠른 앱 개발 방식에도 한계가 있다. 그래서 Objective-c 에서는 [NSCoding](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Protocols/NSCoding_Protocol/Reference/Refer
(iOS) Register gesture
요즘 대부분의 앱들은 Gesture를 지원하는 앱들이 많은데, iOS의 각 컨트롤에 Gesture 객체를 등록해 주면된다. Gesture 객체는 기본적인 설정을 해주고, 해당 Gesture가 발생했을때 수행할 함수를 지정해 주면 된다. 너무 쉽게 설명했는데, 사실 그게 단데. 예를 들어, 왼쪽으로 swipe gesture를 준다고 하자.
(폴그레이험) 같은 대상, 다른 패러다임 - 해커, 프로그래머, 개발자, 그리고 엔지니어
(iOS) 1000단위 콤마 찍기
최근에 금융관련 작업을 하고 있는데 1000 단위로 잘라서 콤마를 입력해야 하는 경우가 있었는데 인터넷을 찾다보니 일일히 문자를 카운팅 하는것 보다 좋은 방법이 있는것을 인터넷에서 찾아냈다. 생각보다 Objective-C 에서 많은것을 지원하고 있다. static 함수로 만들었으며 NSNumUtils 라는 클래스에 넣었다.
(iOS) NSDateUtil, 날짜처리를 간편하게
날짜처리는 어떤 언어에서든지 여간 귀찮은게아닌데 한번 만들어놓으면 편한 몇가지 함수들을 만들었다. 날짜를 넣으면  특정 형식으로 NSString형태로 변환해주는 함수. 이게 필요한 이유는 어떤 셀이나 레이블에 표시를 할때에는 NSString 형을 쓸수 밖에 없기 때문이다. 그리고 반대로 NSString 을 NSDate 형식으로 바꿔주는 함수. 또 하나는 D-Day를 구하는 함수등을 만들었다. 특별한 객체 생성 없이 사용하기 편하게 클래스 메소드로 만들었다.
(iOS) NSNotification 생성 및 사용 코드
NSNotification은 아이폰 프로그래밍에서 빠질수 없는 것인데, 굳이 함수 호출이 아니여도 메시지를 미리 등록하고 연결된 함수를 정의해두면 해당 메시지를 보냈을때 위치에 상관없이 연결된 함수가 호출되는 편리한 구조이다.
(iOS) UIImageView 기본 코드
기본 코드는 진짜 별거 없는데 빠른 개발을 위해서 적는다. UIImageView를 만드는 코드인데, xcode 내 이미지를 가지고 있을때 이미지 파일명을 통해서 UIImage 를 생성하고 그것을 UIImageView 에 넣는 식으로 구성되어 있다.
(redis) start.sh, stop.sh, cli.sh
별거 없는데 redis 를 회사에서 서버로 쓰려니까 일일히 명령어 쓰기도 귀찮고 스케쥴 걸거나 그렬려면 또 쉘 스크립트화 해두는게 편해서, start.sh, stop.sh, cli.sh 만들었다. 그냥 복사해서 쓰시면 될듯.
(iOS) UIViewController 에 NavigationController 추가하기
맨날 까먹는 부분이라 메모차 적어둔다. NavigationController로 시작 할 경우 AppDelegate 에서 잡아주고 시작하지만 중간에 presentModalViewController 함수를 통해서 띄울경우, 아래와 같이 설정해 주면 된다. 간단히 말해서 뜨기 전에
SVN Commit 하기전에 SVN_EDITOR 설정해주기.
vi 에서 작업하는것을 그리 좋아하라 하진 않지만 작업을 해야만 할때가 있기 때문에 세팅을 해놔야 하는데 특히 commit 하기 전에 `SVN_EDITOR`를 설정해 두어야 svn commit 명령어를 주었을때 vi 가 실행이 되고 거기에 svn 메시지를 남길 수 가 있다. 그렇다면 SVN_EDITOR는 어디에 설정을 해야하냐? home/본인계정 아래에서 있는 `.bash_profile `파일을 열어서 설정하면 된다.
# 한밤의 주저리
주간개발기를 2주 넘게 못썼다. 변명 같지만 심한 감기로 인해서 응급실에 신세를 지는 사태를 빚어야만 했다. 건강관리가 프로 개발자에게 얼마나 중요한지 더 말할것도 없지만. 돌이켜 보면 잘 되었다는 생각이 들었다. 응급실에 누워서 아주 잠깐 그런 생각을 했다.
(C++) 정적 검사 및 메모리 검사 툴
자주 사용하지는 않지만 문제가 터지면 반드시 사용해야 하는 두개의 툴인데 사실 cppCheck는 그렇게 많이 사용하지는 않고, 문제 터지면 valgrind 부터 돌려보는 편이라. 그래도 어떤때 사용하게 되는 툴들이라 정리해 둔다.
#주간개발기, 3월 둘째주.
**exs4j 테스트에 대한 이야기 **
(espressoOtr) DistributedSaver/Loader, 문자열 저장을 멀티스레드로.
검색 엔진관련 모듈에 있어서 사전은 필수적인 부분인데, 빅 데이터라는 말이 나오면서 사전의 사이즈가 굉장히 커지는것 같다. 원래 사용자가 제공하는 혹은 사용자 검색 로그에서 추출된 데이터로 사전을 만들어서 사용하는데 중간에 빠른 로딩을 위해서 사전을 정렬한 채로 저장하는 방식을 사용하기도 한다. 그런데 **중간에 정렬하는 방식은 사전의 크기에 영향을 많이 받는다. 즉, 크기가 커지면 정렬하는것도 정렬 사전을 만드는것도 다시 로드시 읽어오는 작업도 오래 걸린다. **
(espressoOtr) Canister/Shelfer 소개
#주간개발기, 3월 첫째주
**exs4j**
(exs4j) Netty ChannelPipeline 에 대한 이해.
현재 개발하고 있는 [exs4j](https://github.com/AhnSeongHyun/exs4j) 에서는 네트워크 파트는 전적으로 [Netty](http://netty.io)가 담당하고 있다. 이유는 여러가지가 있겠지만 쉽게  서버를 구성할 수 있고 pipeline을 변경함에 따라 HTTP 통신 방식도 지원할 수 있기 때문이다.(v1.6 지원예정) [Netty ](http://netty.io)에서 여러가지 예제를 제공하고 있기 때문에 쉽게 따라 할수 있는데 필자 역시 따
(espressoOtr) DateTime wrapping 작업
개인적으로 여러가지 데이터 형이 있겠지만 가장 쓰기 불편하고 짜증나는 형은 단연 날짜와 시간에 대한 데이터 형식인 Date(Java 기준, 다른 언어도 크게 다르지 않다.) 일것이다. wrapping 작업을 하는 이유는 사실 우리가 날짜 와 시간 관련 작업을 할때 하는 작업이 그리 다양하지 않다는 가정에서 출발했다. 실제로 내가 가장 필요했던
(JSP) 간단 OpenAPI 만들기
앱 작업을 하다 보면 서버에서 해주었으면 하는 작업들이 있다. 특히 아이폰 앱의 경우 애플 심사가 최소 일주일의 경우가 많기 때문에 파싱하는 부분이나 연동하는 외부 API가 변경되는 경우 아이폰 앱내에서 해당 코드가 있으면 변경을 하더라도 사용자가 다시 본래의 기능을 쓰려면 시간이 오래 걸린다.
(espressoOtr) jericho parser를 이용한 HTMLExtractor
HTML 파싱은 이제 어떤 서비스와 연동할때 필수적인 부분이 되었다. 그래서 쉽게 쓸수 있게 클래스화 해두면 좋은것 같아서 개인적으로 만들고 있는 [espressoOtr](https://github.com/AhnSeongHyun/espressoOtr) 이라는 자바 라이브버리에 jericho parser 를 이용해서 HTMLExtractor 클래스를 만들었다. jericho 파서는 자바기반 html parser 인데 쉽게 쓸수 있도록 되어 있다. [espressoOtr](htt
[후기] 제 13회 JCO를 다녀와서
자바 개발자는 JCO를 다녀와야 하는가? 하는 물음을 가지고 있었다. 작년에 나는 전업 자바 개발자가 아니였기 때문에 JCO 를 가는 동료들을 바라보면서 굳이 갈 필요가 있을까 하는 생각을 가지고 있었다. Deview 와는 다르고 개인적으로 자바라는 언어는 어느정도 완성된 언어라는 느낌이 들었다. 더 새로울게 있을까 하는 느낌? 그렇지만 올해 내가 처음 참가한 JCO의 느낌과 내용을 쓰려고 한다. 지극히. 주관적인 자바 초보 개발자의 JCO 후기라는 점을 잊지마시길.
(iOS) NSMutableArray에 저장된 객체내 필드 기반 정렬
이전에 포스팅에서 NSArray에 대한 String 에 대한 정렬을 하는 것에 대한 포스팅을 했었다. 사실 그렇게도 많이 쓰이긴 하지만, 어떤  데이터 자체를 하나의 클래스화 시키고 그 클래스에 대한 객체를 만들어서 자료구조, Array, List 등에 저장한 후에 정렬해야 하는 경우도 많다. 예를 들어, 아래와 같은 형식의 어떤 소셜데이터를 담는 클래스가 있다고 가정하자.
#주간개발기, 2월 마지막주.
마치 주간보고 쓰는 느낌이긴 한데, 꼭 에버노트에 스크립한 내용, 내가 몰라서 찾아 보았던 내용들을 매주 금요일 간단하게 나마 정리해 보는 것도 나중에 좋을것 같아서. 언제 끝이 날지 모르겠지만.
Daum DevDay 2013 참가.
Daum DevDay2013에 참가 했었는데, 해당 내용과 링크입니다. 제가 속한 INDF팀에 대한 평가를 너무 잘 해주셨네요^^
(Java) Effective Java 정리 파편.
별거는 아니고 Effective 자바 읽으면서 몇가지 메모한 사항들 정리한다.
(iOS) UIWebView objc_msg_send 문제
한우찾기 앱을 만들때에도 이렇게 힘들지는 않았는데, 풍문검색은 좀 어렵네. 아무튼 업로드 및 빠른 심사를 부탁해 놓은 상황인데, 어제 crash가 났던 상황에 대해서 정리하고자 포스팅을 한다. 일단 상황을 설명하자면 단순하게 UITableView 의 한 셀을 선택하면 그 셀이 가지고 있는 링크주소를 내가 만든 BasicUIWebViewController 에서 보여주는 것이었는데, 보여주고나서 viewController를 내리면(dismiss) 문제가 생기는 것이었다.
(Java) mybatis 기본 사용 정리
(Java) ExecutorService, Thread 를 이용한 스레드 사용
자바 프로그래밍을 하면서 스레드를 자주 사용하는 편인데, 아무래도 속도가 안나오면 데이터를 많이 처리하는 부분에서 병렬처리를 하는 것이 가장 첫 번째로 생각할 수 있는 처리속도의 향상 방법이라고 할수 있겠다. **Thread 객체를 사용하는 방법과 ExecutorService를 사용하는 방법이 있는데, 필자는 주로 각각 다른 작업을 병렬로 해야하는 경우에는 Thread-Runnable 조합을 이용하고, 같은 작업을 여러개로 나눠서 처리한 뒤 결과를 모아서 정렬, 처리 등을 하는 작업의 경우 ExecutorService-Callab
(exs4j) Convert DOM to JAXB
기존의 ExternSearchEngine 이라는 긴 이름을 버리고 exs4j 라는 이름의 **검색 컨텐츠 서버** 오픈소스를 (아직은 저장이 안된다.) 만들게 된 계기 중 하나는 NHN의 오픈API 커뮤니티에 가면서 였다. 그냥 NHN 구경도 하고 OpenAPI가 뭐 별거 있나 하는 생각에 듣게 되었지만, 세미나 중에 DOM 파싱방식 보다는 Apache HttpClient 와 JAXB 를 활용하는 것이 메모리
(오픈소스) BasicUIWebViewController
앱을 만들다 보면 주로 Naver, Daum Open API와 연동하는 경우가 많은데, 데이터를 가져오더라도 상세 데이터를 보려면 UIWebView를 쓸수 밖에 없다. BasicUIWebViewController 는 ViewController 에 웹 컨텐츠를 보여줄 수 있는 UIWebView 를 붙이고 해당 웹 컨텐츠가 로딩 될때의 진행상황을 표시해주기 위해서 UIProgressBar 를 붙였다. 또한 해당 웹 페이지의 타이틀(document.title)을 가져와서 제일 상단
(maven) maven phase
maven에서 빌드를 하다보면 goal 을 입력해야하는 경우가 있는데 그냥 package 를 입력하면 jar를 생성해 주는것으로 생각해서 작업을 하곤 했는데, maven 홈페이지 가서 각 phase에 대한 내용을 발췌해왔다. 몇가지 살펴보면 package 는 당연히 compiled code 를 가지고 jar와 같은 배포형식으로 만든다고 되어 있다. install은 말 그대로 설치인데, package 된 것을 다른 프로젝트에서 사용할 수 있도록 (maven)local repos
(Java) 싱글톤 + Map을 이용한 객체관리.
(Java) 상수 인터페이스 패턴
(iOS) NSUserDefaults 를 이용해서 설정저장하고 읽기.
어떤 값들은 파일에 저장하는 것이 맞지만 때로는 앱내에 설정으로 저장하는 편이 훨씬 나을수가 있다. 간단한 설정같은 경우에는 파일에 저장하는 것이 더 불편하고 그러한 부분을 구현하는 것이 번거로울수 있다. 그래서 iOS 에서는 NSUserDefaults 라는 것을 통해서 저장할 수 있도록 한다. 저장은 Key, Value형태로 저장이 된다. 아래의 코드를 보면 쉽게 이해할수 있다. 단, 저장할 경우에는 synchronize 를 해주어야 한다. 저장된 데이터는 앱이 삭제되기전
(iOS) UITextField와 키보드 액션
UITextField 를 누르게 되면 바로 키보드가 올라온다. 당연한 것인데 이유는 텍스트 입력을 위해서는 키보드가 필요하기 때문이다. 그런데 사용자가 입력하기 전에 뷰가 보여졌을때 바로 UITextField 에 커서가 옮겨지고 키보드가 올려지게 하려면 어떻게 해야할까? 아래의 코드처럼 FirstResponder 를 UITextField에 주면 된다.
CSS 생성기, 잘 모르면 그냥쓰삼.
Link : [http://www.cssportal.com/css3-rounded-corner/](http://www.cssportal.com/css3-rounded-corner/)
(iOS) NSString to NSDate
데이터를 저장하다 보면  NSDate 를 결국 문자열의 형태로 저장할 수 밖에 없다. 당연히 텍스트 파일에 저장하니까 그런데, 다시 파일에서 데이터로 복원할때는 당연히 NSDate 형식으로 바꾸어서 써야 할때가 있다. 아래의 코드를 보자.
(iOS) NSString contain, 문자열 포함관계 체크
은근히 하나의 문자열 안에 또다른 문자열이 포함되어 있는지를 체크해야 하는 경우가 많다. 예를 들어 어떤 url 에 acces_token=sflkjpsojfs 이러식으로 담겨서 온다고 가정해 보자. 해당 URL 문자열에 access_token 이라는 문자열이 포함되어 있는지 확인을 한뒤 split 으로 처리하는 것이 순서일 것이다. 문자열의
(iOS) UIWebView 에서 URL 가져오기
간단한 코드니, 별 다른 설명하지 않겠다. 아래의 코드처럼 UIWebView에서 가져오면 된다.
(iOS) 로컬 HTML UIWebView 에 뿌리기.
(UNIX) nohup ?
**nohup**
(iOS) UIAlertView 초 간단 정리
위와 같이 쓰면된다. title에는 어떤 경고를 줄것인지 쓰면 되고, message에는 상세한 경고 문구를 써 주면 된다. cancelButtonTitle
(iOS) UITextField, Return 키 입력 처리 어떻게하지?
UITextField 를 뷰에 넣은 상태에서 사용자가 누르면 당연히 텍스트 입력을 해야하니까 키보드가 올라오는데 그 상태에서 텍스트를 입력하고 나서 Return key를 누른다면 다양한 행동들을 해줘야한다. 카톡이라면 당연히 다음글로 넘어가야 할테도 어떤 앱에서는 그냥 바로 전송하는 경우도 있다. 이러한 행동을 해주기 위해서는 아래의 코드처럼 UITextFiledDelegate 의 t
# 전문연구요원을 마치며. 전문연구요원 가이드.
1월 18일부로 기나긴 전문연구요원 복무가 끝이 났다. 군대를 가지 않겠다고 충주의 기숙사 앞에서 농담처럼 친구들과 애기 했던것이 실제 말하는대로 이루어졌다. 어떤 친구들은 대단하다고 생각할지도, 어떤 친구들이 지겹지 않냐 라고 생각할 수도 있지만, 지금의 내 느낌은 시원섭섭하지도 않고 그냥 후련한 것 뿐이다. 지금 이 글을 볼 20대 초의 남자 대학생에게 전문연구요원을 혹시
(iOS) UISwitch 기본 코드
여러가지 기본코드들을 새로운 컨트롤을 쓸때마다 정리하고 있다. 참고하시길. 사실 기본코드는 iOS 개발 문서 혹은 웹 서핑 하는시간을 줄여줄뿐 대단한 기술이나 팁이 들어가 있는 것이 아니다. 아래의 코드는 UISwitch 컨트롤을 생성하고 switch 할 때의 반응을 받는 함수 하나를 정한 코드이다.
(iOS) Single-ton DataManager
자주 쓰는 프로그래밍 방식중 하나인데, 싱글턴으로 DataManager 라는 클래스를 만들어서 그곳에서 앱내에 모든 파일 관련 작업들을 다 해주는 것이다. 다른 각 클래스에서는 singleTon_GetInstance 를 이용해서 그냥 객체 생성하듯 생성하면 되지만 실제로는 하나만 생성이 된다. 아래의 코드는 그냥 간단하다. 저장하고자 하는 데
(iOS) NSArray, key없이 일반 정렬 코드
파일명 가져와서 정렬할 일이 있었는데, 대부분의 웹 검색은 한 클래스 내에서 어떤 변수, key를 가지고 그것을 기준으로 정렬하는 코드가 많았다. 사실 필요하기도 한데, 그건 나중에 필요할때 정리할꺼고. 아래의 코드는 간단하게 그냥 NSArray 내에 있는 String을 정렬하는 코드이다. NSMutableArray 도 상관없다.
Internet Explorer 켜자마자, 작동이 중지되었습니다. 오류 해결 방법
한동안 인터넷 익스플로러가 회사 컴퓨터에서 키자마자 작동이 중지 되었습니다. 라는 팝업과 함께 꺼지는 경우가 많았는데 이번 연말정산을 하기 위해서 마음 먹고 지울 각오하고, 컴퓨터 밀 각오하고 고쳐보기로 했다.
(Python) 간단하게 테스트 파일 만들기
업체 특성상 테스트 파일을 많이 만들어야 하는 경우가 있다. 그런데 일일히 다 만들기도 귀찮고 때로는 사이즈를 정해서 만들어야 할 경우가 있다. 예를들어, 1MB 단위로 10만개 데이터를 만들어서 넣어야 하는 경우가 있다. 내용 역시도 중요한 경우가 있다. 그냥 영문자만 가득 채워야 하는 경우가 아니라 완벽한 한국식 문장이 들어가야 하는 경우가 있다.
(iOS) NSDate 현재 날짜 시간 가져오기
[Java] SortedSet에 대해서.
(iOS) NSString split, 문자열 구분자로 자르기
문자열을 받아오거나, 처리하거나, OpnAPI로 어디선가 데이터를 가져와서 파싱하려고 하면 무조건 할 수 밖에 없는 것이 문자열을 특정 구분자를 이용해서 자르고 붙이고 하는 작업일것이다. 자꾸 까먹어서 올린다.
[Java] StringAppender, StringBuilder 짭.
[Java] 간단 gson wrapping 하기
여러가지 라이브러리가 있겠지만 단연 json 라이브러리 중에 내가 가장 잘 쓰는 것은 [gson ](http://ash84.tistory.com/775)이다. 쓰기 편해서 일수도 있지만, 함수이름이나 그런것들이 잘 지어져있어서 직관적이다. wrapping 클래스를 만드는 이유는 여러 클래스에서 new 를 이용해서 Gson 객체를 생성하는데, 굳이 그럴 필요가 있을까 싶어서 만들게 되었다. wrapping 클래스에는 toJson()  함수 밖에 없는데 그 이유는 class to
[Java] LinkedHashSet, 이건 멀까?
Set 인터페이스 관련 3번째 포스팅, 지난번 [HashSet](http://ash84.tistory.com/898)에 이어서 LinkedHashSet이다. 기본적으로 Set 인터페이스에서 제공하는 함수를 가지고 있고, **null은 허용**된다.  일단 내부 코드를 보자.
[github] README.MD에 이미지 올리기.
github 의 가장 큰 특징중 하나는 저장소에 README.MD 를 읽어서 저장소의 가장 처음에 보여준다는 것이다. 이것은 마치 README.txt 와 같은 것인데, 특유의 마크업을 사용한다. 자세한 사항은 [여기](http://daringfireball.net/projects/markdown/syntax)를 살펴보면 된다.
(iOS) UITableView 기본 코드 세트
UITableView 는 아이폰 앱을 만드는데 있어서 절대적으로 필요한 컨트롤이다. 때문에 굉장히 자주 사용하게 되는데 그중에서 반드시 필요한 기본 코드들은 아래와 같다. 매번 만드는것도 귀찮아서 그냥 복사해서 붙여넣기 할수 있도록 정리하는 차원에서 올린다.
[Java] HashSet 을 파헤쳐보자.
HashSet은 Set 인터페이스를 구현하는 클래스로 내부적으로 HashMap 인스턴스의 지원을 받는다. [GrepCode](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java)에 가서 HashSet을 찾아보자.
#어제보다나은오늘
**“프로그래머 열정을 말하다.” **라는 책을 이전에 샀는데 최근에 돼서야 읽게 되었다. 사실 이전 버전인 사랑하지 않으면 떠나라 라는 책의 2번째 판인데 그 책을 너무 잘 읽어서 프로그래머 열정을 말하다는 처음에 잘 들어오지 않았다. 자세한 사항은 [링크](http://ash84.tistory.com/894)를 참고 하시면 될것 같다.
maven Failed to load Main-Class manifest attribute from..에러발생시.
java -jar lib.jar 이런식으로 jar를 직접실행하는 경우가 있다. 이런 경우 maven의 pom.xml에 main class를 지정해 주지 않으면 실행할 경우, 다음과 같은 에러가 발생 할 수 있다.
[Java] Set 인터페이스, 간략 정리.
Set 인터페이스에 대해서 알아보자. Collection 의 일부인데 중복되는 element를 포함하지 않는것이 가장 큰 특징이며, Java Doc 에서는 “수학적으로 말해서 집합을 의미한다” 라고 설명하고 있다. Set 인터페이스는 Collection 를 상속 받아서 만들어진 인터페이스이다. 때문에 대부분의 함수들이 Collection 에서 제공하는 함수들과 동일하다.
[Java] PriorityQueue(우선순위큐)를 알아보자.
일반적인 큐(Queue)는 선입선출(FIFO)의 구조를 가진다는 것은 다들 아시고 있을 것이라고 생각된다. 그렇다면 PriorityQueue 는 일반적인 큐와 어떻게 다를까?
[책] 프로그래머 열정을 말하다 <리뷰>
(CSS) hr 태그, 점선 스타일
사실 태그를 즐겨쓰는 편인데, 이유는 프로그래머다 보니 이미지로 멀 하는것 자체가 부담스러워서 최대한 많이 태그를 사용하는 편이다. 즐겨 사용하는 태그의 스타일시트 일부분을 올린다. 점선이고 약간의 색을 넣는다.
2012/
Zeitgeist 2012: Year In Review
2012년의 마지막 포스팅. 설명이 필요없는 2012년 리뷰라는 동영상으로 대신한다. 멋
오픈소스에서 활동하기 - 이희승 -
오픈소스를 활용하는 것과 활동하는 것은 엄연히 다르다고 생각한다. 아직까지 참여는 하지 않지만(분석이 귀찮아서..) 그래두 github를 통해서 만든것을 자꾸 공유하려고 하고 있다. 2013년에는 참여도 하고 공유도하는 그런 한해가 되길 바라며, 개인적으로 존경하는 netty의 개발자 이희승의 강연을 올린다.
maven에서 단위테스트가 안될때, Junit4를 추가하자.
maven 빌드 환경을 세팅하고 기존의 Junit 단위테스트 클래스를 maven 의 test (src/test/java)에 넣어서 빌드를 하니 빌드시(package), 이상하게 Junit 에서는 정상적으로 작동하는 maven 빌드에서만 이상하게 fail 이 발생하는 것을 볼수 있었다.
maven log4j-1.2.16.jar 연동시 pom.xml 에러 해결.
slf4j-log4j를 연계해서 쓰는데, [이전 포스팅](http://ash84.tistory.com/863)에서도 말했지만 slf4j와 lo44j의 버전을 제대로 맞추어야 별 탈없이 붙어서 돌아가게 되는데, 필자의 경우 아래의 버전 조합으로 현재 회사에서 사용하고 있다.
maven, UTF-8 인코딩 소스일경우, 경고 문구 해결법
maven빌드를 하고 나면 이상하게 아래와 같은 문구가 나온다. 말인즉, UTF-8 인코딩으로 작성되어 있어서 특정 플랫폼에서 종속적(dependent)라는 애기인데, `
(Notes) LDAP Server: Listener failure, TCP/IP port number [389] is already in use on this system
Domino/Notes 서버를 윈도우 2008 서버에 설치한 이후 가동시켰을때, 아래와 같은 에러가 발생한다. 에러인 즉, 이미 서버에서 389번 포트를 사용하고 있어서 Domino의 LDAP 서버에서 389번 포트를 사용 할 수 없다는 애기다.
[Java] Vector에 대해서.
vector는  증가 가능한 객체의 배열형태( a growable array of objects)라고 자바문서에서 설명하고 있다. ArrayList와 다른 점은 capacity와 capacityIncrement 를 관리함으로써 저장용량 최적화를 시도한다는 점이다. capacity는 vector의 용량인데 개발자가 지정할 수 있다.  capacityIncrement 은 capacity가 증가하는 단위이며, 초기 생성시 capacity는 10으로 지정되어 있다.
[Java] LinkedList, ArrayList와 뭐가 다른가.
클린코드등의 책을 보면서, 인터페이스에 맞춰서 프로그래밍 하라는 이야기를 많이 들었고, C#의 ArrayList가 익숙해서 그런지 주로 자바에서 사용하는 Collection중 하나가 아래와 같은 List 이다.
[Java] Collection Hierarchy
출처 : [http://ajaypinnaka.blogspot.kr/2011/01/java-collection-hierarchy.html](http://ajaypinnaka.blogspot.kr/2011/01/java-collection-hierarchy.html)
(Shell) 사용자 추가/삭제 스크립트[펌]
페이스북에서 일하는 방식처럼, 하기 싫은 업무는 자동화 해야한다. 그게 프로그래머가 일하는 방식이라는것.
(iOS) OpenAPI 호출할때 주의할 점. NSUTF8StringEncoding 사용하기
올해 한우찾기 v2.3.5 버전을 개발하면서 새로 넣은 기능이 바로 뉴스검색 기능이었다. 간단히 네이버 OpenAPI 검색 기능을 이용해서 한우관련 뉴스를 사용자가 직접 검색할 수 있도록 제공하는 기능이었는데 만드는 과정에서 특별한 문제가 있어서 이렇게 디버그 포스팅을 한다.
2012 첫 콩기부. 얼마안되지만^^
![](http://ash84.net/wp-content/uploads/1/cfile24.uf.260A814750DABC83214297.jpg)
[Python] newline과 tab 으로 split 문자열 파싱
파이썬 마을에서 조금씩 파이썬에 대해서 질답게시판에서 한번씩 생각해 볼수 있는 것들은 감이 녹슬지 않기 위해서 해결할 예정이다. 기존의 게시판 형태에서 Stack Overflow 의 형태로 변경이 되었다. 사이트 주소는 아래와 같다.
20대의 끝자락에서, 커리어 트리를 작성하다.
[channy 님의 나만의 경력지도 만들기](http://channy.creation.net/blog/889/)라는 글을 보고, 경력지도 템플릿을 다운 받아서 작성해 보았다. 매년 자신의 이력서를 갱신해봐야 한다는 말을 만드는 내내 실감할 수 있었다. 아직 그렇게 경력이 많진 않지만, channy 님의 경력을 보면서 대단하다는 생각이 들었다. 노력도 많이해야겠다는 생각도 들었다.
[Java] List 분배하기, distributeListToSubList()
개인적으로 필요할것 같은데 하는 라이브러리를 만드는 작업을 하고 있는데 이름은 espressoOtr 이라고 지었다. (github에 아직은 미공개상태.) 뭐 이름은 내 마음대로니까 거두절미하고, 짜잘한 라이브러리가 있지만, 최근에 만든것을 하나 공개하려고 한다. 대단한건 절대 아니고, 누군가 이미 만들어 쓰고 있을지도 모르지만.
[Java] List 분배하기, distributeListToSameCapacity()
앞의 포스트에서는 [하나의 리스트에 대해서 n 개의 subList로 분배하는 distributeListToSubList()](http://ash84.tistory.com/874) 함수를 소개했는데, 이번에 소개할 함수는 하나의 리스트를 n개의 동일한 아이템 개수를 가지는 subList로 분배하는 함수이다. 차이점은 distributeListToSubList() 함수는 통제하는 부분이 subList 의 개수인 반면에,  distributeListToSameCapacity() 함
More Humane Medical Experience
조금 된 동영상인데, 홍대의 제너럴 닥터에 대한 이야기
윈도우에서 포트 확인
윈도우 서버에서 포트 확인시, 사용하는 명령어, find 명령어를 사용하면 좀더 쉽게 사용할 수 있다.
Nexus를 이용한 사내 Maven Repository 만들기 1.
앞서 이클립스에 maven을 설치하는 과정에 대해서 설명했는데, 이번 장에는 사내 maven Repository를 구성하는 방법에 대해서 알아보자. 일단 사내 Repository를 구성해야 하는 가장 큰 이유는 매번 참조하고 있는 라이브러리를 가져와야 하는 불편함도 있겠지만, 솔직히 필자에게 더 필요한건 사내에서 만들어진 라이브러리를 Repository에 올려놓고 다른 동료개발자분들이 쉽게 찾아서 쓸수 있게 하는것이 더 중요했다.
iosfonts.com, 내장폰트의 형태 확인하자.
이미지 다음으로 많이 신경쓰는 부분이 바로 폰트 부분인데, 외부 폰트는 형태를 알고 쓰는 경우가 많은데 내장 폰트의 종류와 크기, 그리고 텍스트를 입력했을때의 느낌을 볼수 있는 사이트가 있다. 아래의 사이트인데 개발시에 유용함. 참고하시길.
[Java] StringBuilder delete() 시, 현재 길이 체크할것.
너무 간단한것이긴 한데, 최근에 만든 소스에서 실수를 한적이 있어서 체벌(?)차 이렇게 적는다. 무엇인가 가변 문자열 조합을 위해서는 String 이 단연 후달리는 것은 보편적 자바 개발자라면 다 아는 사실일텐데, 그래서 StringBuilder를 사용하는데 실수 할수 있는 부분이다.
[maven] 기본 설치 및 메이븐 프로젝트 만들기
maven에 대해서 포스팅 하는 이유는 Java 의 빌드에 대해서 여러가지 방법이 있지만, 가장 jar에 대한 관리가 잘 되기 때문이라는 생각에서였다. 본 글은 이클립스 Juno 버전이 설치되어 있다는 가정하에 진행하도록 하겠다. 기존의 이클립스가 있으신 분들이라면 Juno 버전을 따로 다운 받아서 해보시길 바란다.
[Python] base64 인코딩 디코딩
파이썬은 기본적으로 base64를 지원한다. 간단한게 올림.
[구지탱] GFS, Bigtable, Chubby
**GFS(Google File System)**–
[JAVA] 서브클래싱을 막는 방법
서브클래싱(subclassing)을 막는 두가지 방법
나사에서 찍은 지구의 밤. (BalckMarbel-NASA)
[JAVA] slf4j-log4j 간단 세팅하기.
개인적으로 log4j 세팅을 그리 좋아하지 않고, logger 라는것 자체가 좀 싫어하는데 많은 사람들이 사용하고 사실상 회사에서 자바 프로젝트를 하려면 안 쓸수가 없다. 때문에 간략하게 나마 정리를 한다. slf4j를 log4j보다 선호하는 이유는 각자 찾아보길 바란다. ([링크](https://www.google.com/search?q=slf4j%EB%A5%BC+%EC%82%AC%EC%9A%A
사진을 통해 삶들을 재수정하다.
집에오
스스로 조직하여 배우는 컴퓨터 과목
[JAVA] getUnicodeFromString, 문자에서 유니코드 값 가져오기
유니코드를 가져와야 하는 경우가 있다. 어떤 경우에는 문자 대신에 유니코드 자체값을 사전 같은 곳에 넣어 주는 곳이 있다. 사실은 그리 선호 하지 않는 경우인데 이유인즉, 해당 문자를 별도로 눈으로 확인해야 할 필요성이 있는경우, 불편하다. 대부분 이런 경우, unicodinator 를 이용한다. 자바에서 어떤 문자에 대한 유니코드 값을 가져오는 코드는 다음과 같다.
[구지탱] 1장. 구글의 탄생.
[JAVA] private 생성자의 사용에 대해서.
필자는 데이터 클래스라는 것을 많이 만들어쓰는 편인다. List나 Hashtable 의 변수에 이름을 주는 것 보다 클래스와 멤버에 이름을 줌으로써 좀 더 의미를 명확하게 표현할 수 있기 때문에 자주 사용하는 편이다. 데이터 클래스들의 경우 사실상 클래스에서 행동이라고 하는게 set, get 과 같은 정도의 것 밖에 없는 경우가 많다. 다음의
[JAVA] C개발자를 위한 자바 코딩 스타일 파일
[](http://ash84.net/wp-content/uploads/1/cfile27.uf.1231724F50B7509137A4BA.xml)cfile27.uf.1231724F50B7509137A4BA.xml
[JAVA] 약간은 낯설은 가변인자 사용법.
개인적으로 가변인자 사용을 그리 추천하지는 않지만, 어쩔수 없이 사용할때가 있다. List나 Hashtable을 사용하는것도 하나의 방법이겠지만, 간단하게는 가변인자를 활용하는것도 좋은 예라는 생각이 든다.
(iOS) iPhone 시뮬레이터 경로
~/Library/Application Support/iPhone Simulator/
오픈소스 도구가 어떻게 민주주의를 발전시킬 수 있을까?
[윤석찬](https://twitter.com/channyun)님의 트
[Java] HashMap에 대한 정리.
뭐, 다들 아는 사실이겠지만, HashMap에 대해서 한번 더 정리를 하려고 한다. 필자는 Hashtable을 많이 쓰긴 하는데 HashMap에 대해서 정리를 하는 이유는 단연 **성능**때문이다. 스케일 아웃도 좋지만, 일정 수준이상의 성능 최적화 작업은 늘 필요하기 마련이기 때문이다.
(GitHub) 1. 저장소 만들고 소스올리기.
![](http://ash84.net/wp-content/uploads/1/cfile23.uf.1614B13450B2B45A2F0F75.PNG)
탁월한 아이디어는 어디서 오는가?
아이디어 라는게 딱 어디서 온다고 보긴 힘들지만, 내 경험으로 본다면 작은 문제해결에 대한 아이디어들은 책상앞, 키보드에 손 올린 시점이 아닌 어떤 다른 행위 도중에 오는것 같다. 그리고 이 동영상에서 말한대로 여러번
[JAVA] Comparable 인터페이스 구현
필자는 Comparable 인터페이스를 이용해서 compareTo 함수를 구현하는 것 보다는 사실 Comparator 를 이용해서 정렬에 활용하는 케이스를 자주 사용했었다. (물론 그 안에서 이미 구현되어 있는 기본 클래스의 compareTo()를 사용한다.) 여기서는,** Effective Java** 항목12번에 Comparable 인터페이스의 구현을 고려하자 라는 부분에 대해서 요약해서 정리하고, Watch 클래스를 통해서 시계를 비교하는 compareTo() 함수를 구
(iOS) HTML Tag Remover
(iOS) iOS앱 - mysql 연동, 이렇게 하면 쉽다.
mysql 서버는 다들 아시다시피 워낙 많이들 쓰는 데이터베이스 서버이기 때문에 사실 개인이나 작은 회사에서 뭔가를 만들때 사용되는 DB서버는 mysql 이라고 보면된다. 개인적으로 회사에서 몇번 써본적이 있지만, 아이폰 관련 개발에서는 사실 파일디비 형태인 sqlite3를 사용해 보았다.
[JAVA] FileReaderManager, FileWriterManager 쉽게 읽고 쓰자.
자바에서 파일 읽고 쓰는 부분에 대한 정리차원에서 쓴다. 개인적으로 자주 쓰는 FileReaderManager, FileWriterManager 클래스를 올린다. 유틸리티 클래스(static  함수)로 중요한 부분은 현재 JVM 인코딩을 가져와서 읽고 쓰고 하는 부분이다. [이전 포스팅](http://ash84.tistory.com/783)에서도 언급했지만 findbug 플러그인을 통해서 걸러지는 부분이기도 하거니와 인코딩 문제는 미리 처리해주는게 문자열 관련 처리를 할때
[JAVA] correctDirectoryPath(), 디렉토리 경로 한번더 검사하기.
간혹 디렉토리 안에 여러가지 파일에 대해서 접근해야 할때, 디렉토리 경로를 받을때가 있다. 그런데 이 경로를 가지고 뭔가 작업을 할때 머리속에 늘 남는것 중 하나가 바로 사용자의 입력 행태이다. 즉, 사용자는 디렉토리 경로를 다음과 같이 입력할수 있다.
[JAVA] @Override eqauls() 함수
**** **Effective Java** 에 나오는 내용중 **[항목8]** 번에 해당하는 내용인데 equals()  메소드의 오버라이드에 대한 내용이 정리되어 있다. 요약하자면, 기본형(primitive) 타입은 == 을 이용해서 검사하고, 클래스 형은 자바에서 제공하는 것이라면, equals() 메소드를 사용하면 된다. 그리고 기본형 중에서 double, float 형은**[Double.Compare
mac에 mysql 설치 관련 링크 정리, 이것만 알면돼!!
mac(osx) 에서 mysql 설치하기 위해서 참고했던 링크들이다. 다른 분들도 도움이 되시길.
(CSS) 블록지정 색 바꾸기.
![](http://ash84.net/wp-content/uploads/1/cfile30.uf.0259E83D508E8CD11DD47E.jpg)
(티스토리 스킨) forDevSkin
티스토리를 시작한지 어언 5년차가 되어 가는데 그동안 많은 스킨들이 있었지만, 딱 마음에 드는것은 몇개 있지 않았다. 기존의 테터툴즈, 텍스트큐브에서는 플러그인, 스킨 개발자 분들이 많이 계셨는데 요즘은 진짜 많이 뜸한것 같아서 많이 아쉽다. 그럼에도 불구하고 나는 계속 스킨을 만져왔는데, 기존의 여러 스킨들을 합치고 만지면서 나온 결과물이 [forDevSkin](https://github.com/AhnSeongHyun/forDevSkin) 이다.
github_reader, github 유저의 활동을 내 블로그에 보여주기.
개인적으로 github를 가장 좋아하는 서비스로 뽑고 있고, 필자 역시 github 에 무엇인가를 올리는 작업을 좋아한다. 여타의 코드 저장소 및 커뮤니티와 다른 점이라면 단연 소셜적인 기능을 통해서 다른 사람들과 좀더 친밀하게 뭔가를 할수 있다는 점이겠다. 이러한 이유로 인해서 github는 개발자들 외 여타의 다른 분들도 많이들 쓰신다.
[JAVA] 자바에서 싱글턴 패턴을 구현하는 세 가지 방식들.
안티패턴임에도 불구하고, 자주 쓰게 되는 패턴중 하나가 싱글턴 패턴인데, 멀티스레드에 취약하다는 문제점을 가지고 있으면서도 선택된 데이터나 현재 데이터만을 표현할때 좋은것 같다. 이전 포스팅에서도 [H](http://ash84.tistory.com/762) [ashtable 을 이용한 로컬 캐쉬 소스](http://ash84.tistory.com/762)에서도 싱글턴을 썼는데 이번에 이펙티브 자바를 읽으면서 싱글톤에 대한 이야기가 나와서 정리하고자 한다.
2012 플레이오프 1, 2, 3, 4차전 간단 리뷰
SK 와이번스 팬인지 어언 5년. 김성근 감독님을 보내고 이만수 감독 체제에 들어온지도 2년차 시점에서 2012년도 플레이 오프를 지켜본 골수팬으로서의 간단한 리뷰를 남기고자 한다.
소통의 개발자 세미나, DevOn2012 후기1 - 개발자 창업과 아이디어
올해는 개발자 컨퍼런스 풍년이다. 필자 역시 다 참가를 하고 있다. 10/31일 열릴 KTH 의 H3 컨퍼런스 역시 신청이 된 것 같은데 갈수 있을지는 의문이다. 뭐 거두절미하고, DevOn2012 후기 시작하겠다.
(iOS)libxml/HTMLparser.h file not found 에러 처리
이전 포스팅에서 iOS  App  개발시, 각종 HTML 파서들을 연동하는 방법들을 소개했는데 그러한 라이브러리에 사용하는 것중 하나가 libxml2 라이브러리이다. 기본적으로 프로젝트
[Python] sqlite3 를 손쉽게 쓰도록 만든 클래스
파이썬(python)에서는 sqlite3 를 기본 라이브러리로 지원하고 있는 것은 누구나 다 아는 사실일텐데, 좀더 쓰기 편한 형태로 CRUD 에 대해서 클래스 랩핑을 해봤다. 함수에서 테이블 이름, Where 문, 혹은 컬럼이나 넣을 데이터 받으면 그에 따라서 쿼리 만들어서 쿼리 실행하도록 하였다. 별도의 예외처리는 안했기 떄문에 필요한 분들이 가져다가 커스텀해서 쓰시길 바란다.
사용은 해보셨나? 페이스북 친한친구 기능.
페이스북은 이제 생활이 되어 버린듯 하다. 좀더 트위터에 집중하려고 하지만 안면식이 있는 사람들이 하는 이야기에 더 끌리기 마련이다. 가급적 페이스북에 다양한 친구들이 있는 사람들에게 추천하고 싶은 친구관리 방식은 단연 그룹관리 방식이다.
#2012.10.09
왜 그렇게 화를 냈는지에 대해서 스스로에게 어느 순간 묻고 있는 내 모습이 조금은 성숙해 진게 아닌가 싶기도 하다. 나 스스로 클린코드를 지향하고 결함이 없는 소프트웨어 만들려고 노력했던 입사 초기에 모습에 비해서 지금의 난 일정의 99%를 유지보수에 쓰고 있고, 보이스카웃의 원칙 조차 지키기 힘든 상태에서 초기의 마음은 현실이라는 높은
(LockLizard) 인쇄 막힌 PDC 파일 캡처하는 방법
애플스럽지 않은 사과문에 짜증나네.
>Apple 고객 여러분께
[Python] enum 정의하기
사실 파이썬에 다른 언어처럼 enum 이라는 타입은 딱 정의된 것은 없으나 찾아보니 다음과 같이 range 함수를 이용해서 숫자를 처음에 할당하는 방식으로 사용한다고 한다. 최근에 사용한 것은 실행인자로 어떤 문자열을 받아서 프로그램내에서 모드(mode) 를 정의 하였다.
[Python] 한자 한글 변환 파이썬 소스
한자어가 섞인 글 안에서 한자어를 한글로 교체해서 반환하도록 하는 프로그램이다. 원래는 C로 작성된 모듈을 봤었는데 너무 복잡스럽게 되어있는 문제가 있어서, 좀더 쉽게 할수 있는 방법이 없을까 찾다가 파이썬(Python)으로 짜 보았는데 훨씬 간결하다. 부가적으로 qsort() 와 이진탐색을 사용한다면 좀더 빠르게도 가능하지 않을까 싶다.
shared object 연동시, IBM TOC-reload instruction 발생 문제
사건의 요지는 이렇다. 나는 고객사로 부터 파수닷컴 DRM 연동을 의뢰 받았고 파수 닷컴 DRM 관련 ANSI C 라이브러리(AIX/xlC로 빌드된)를 전달 받았다. 원래 연동하는 소스에 붙였는데, 이상한 에러들이 나는 문제가 있어서 [어디에서 보니](http://demo.initech.com/index.php?document_srl=12470) .so 파일을 연동이 안될수 있으니 **-Wl,-brtl** 옵션을 사용해야 한다고 나와 있었다.
(iOS) NSString 치환하기(replace)
쉽게 NSString 의 치환기능이 있음에도 불구하고.. 그동안 왜 Substring 으로 파싱만 해서 이어 붙이기를 했는지.. 애써 Objective-C의 요상한 함수명 탓으로 돌리고 싶다능.
2012 추석.. 나 이래도 돼?
추석에 무엇을 할까? 하는 생각은 별로 없었는데, 운영하고 있는 [네이버 블로그](http://blog.naver.com/ASH84_JIN)(개발 중심 내용이 아닌)에서 이벤트 처럼 추석에 할일 써보기 뭐 그런 이벤트가 있었던 것 같아서, 이번 추석에는 소프트웨어 엔지니어로써 무엇을 할지 한번 써보겠다. 공약이 아닌, 다짐임을 다시 한번 말씀 드린다.
현재 등록자수: 959명/1,000명, DevOn2012 등록 고고.
**다음 커뮤니케이션**이 주최하는 [DevOn](http://devon.daum.net/2012/#.UGVZNKSubgc) [2012](http://devon.daum.net/2012/#.UGVZNKSubgc) 를 등록하였습니다. NHN의 **[Deview2012](http://ash84.tistory.com/821)** 와 다르게 유료(10000원 기부)이긴 하지만, 그래두 점심을 주기 때문에 점심값 6000원(시세)이라고 하면 뭐 그리 나쁘지 않다고 생각합니다.^^</
[iOS]HTML 파싱 - HTMLParser 를 이용하기, more fast
한우찾기 관련 포스트에서 밝힌적이 있듯이, HTML 파싱을 핵심으로 하고 있는 한우찾기의 라이브러리화 작업이 한창 진행중이다. 이전의[ HTML 파싱 포스팅](http://ash84.tistory.com/697)
최고의 개발자 세미나, Deview2012 를 다녀와서.
![](http://ash84.net/wp-content/uploads/1/cfile7.uf.161BB63D505A67730E71A3.jpg)
이슈관리 시스템에 대한 고찰
벤처회사에서 일하다가, 솔루션을 파는 현재의 회사로 이직한지도 1년. 가장 신기했던 건 복지포인트도, 산행도 아닌 이슈관리시스템(Issue Tracking System)이었다. 올해 스터디그룹에서 보았던 코드 크래프트(Code Craft)라는 책에서도 이슈관리 시스템은 버그를 추적하고 좀 더 나은 다음 버전의 소프트웨어를 만드는 데 중요한 역할을 한다고 나와 있다. 참고로, 필자가 사용하는 이슈관리 시스템은 Atlassian 사의 JIRA를 사용하고 있다.
ExtractManager 의 역할
ExtractorManager 가 굳이 필요한가? 에 대한 물음이 들 것이다. 왜냐하면 굳이 각 Extractor 이 파일타입에 따른 상세 구현 Extractor 클래스가 있고 그것을 그냥 쓰면 되지 않는가 하는 물음에서 이다. 그러나 필자가 ExtractorManager 를 만든 이유는 다음과 같다.
DocumentExtractor 의 기본 구조
국내 유명 업체의 문서추출기가 있겠지만, 굳이 hwp를 사용하지 않는다면 이용할 필요가 없다. 문서추출기(Document Extractor)에 대한 오픈소스가 많이 있지만 여기서 소개할 것은 Apache POI를 이용해서 좀더 쓰기 쉽게 만든 자바(java) 기반의 문서추출기인 [Document](https://github.com/AhnSeongHyun/DocumentExtractor)
[JAVA] jedis를 이용한 Redis 와 연동하기
577 프로젝트, 국토대장정을 위한 짧은 지침서
운전면허 시험과 이빨 대수술사이의 시간이 있어서 577 프로젝트를 보기로 했다. 기존의 내가 봐왔던 영화, [째째](http://ash84.tistory.com/651) [한 로맨스](http://ash84.tistory.com/651), 러브픽션, 아부의 왕, 내아내의 모든것,  비급정서와 같은 맥락으로 끌려서 일까. 내 여자친구는 거부했다
[iOS] GetHtmlString(), HTML 가져오기
라이브러리 개발 시이작.
한우찾기 라이브러리 개발을 시작했다. 창조적 열정이 사라져 가는 내 자신에 대해서 되돌아 보던중, 문듯 언제 가장 개발을 하면서 재밌었는가 하는 생각을 가지게 되었다. 길진 않은 소프트웨어 엔지니어로서의 생활을 이어오고 있지만, 그래두 단연 아이폰 앱을 만들었던 기억이 가장 재밌었던것 같다. 가족을 위해서 였고, 프로그래밍을 말할것도 없
[C/C++] GetFileExtension() 파일 확장자 가져오기
지난번에 경로에서 파일이름만 추출하는 소스코드를 포스팅했었는데 이번에는 C/C++ 에서 파일이름에서 확장자만 가져오는 부분을 올린다. 중요한 포인터의 뒤에서 부터 접근한다는 점이다. 마침표(.)까지 접근해서 그 다음 포인터를 반환하는 방식이다.
[iOS] NSString Trim
쉽게 말하자면 자바나 C#의 trim() 함수를 하는 것이다. 지정된 문자열에 공백을 제거하는 기능이다. Objective-C는 약간 함수명이 서술적인 측면이 있어서 헷갈릴까봐서 올려둔다.
[C/C++] 파일경로에서 파일이름 가져오기
파일경로로 문자열 파라미터를 받았느데, 파일이름만 필요할 경우가 있어서 만들었다. 코드를 보시면 알겠지만 파일경로의 separator 를 기준으로 문자를 모으는 방식으로 구현되어 있다. 문제는 운영체제 마다 구분자가 다르다는것. 본 코드는 유닉스 기반임을 알린다.
[JAVA] FilenameFilter 를 이용한 특정 확장자 파일리스트 가져오기
파일처리 관련 부분에서 자주 사용되는 부분이 바로 디렉토리에서 파일리스트를 읽어오는 부분이다. 그런데 간혹 원치 않는 파일을 읽어오고 해당 파일에 접근하거나 파싱하는 과정에서 문제가 생길 수가 있다. 때문에 정해진 확장자만 읽어오는 부분이 필요한데, JAVA 에서는 이를 위해서 FilenameFilter 라는 것을 제공한다.
SyntaxHighlighter 에서 gist 까지, 그리고 워드프레스에서의 사용법
예전에 블로그에 소스코드를 처음에 넣을때에는 주로 박스 안에 코드를 넣는 작업을 했었다. 그런데 이 작업의 가장 큰 단점은 언어별 syntax 하이라이팅을 보여주지 않는 다는 점이다. 말 그대로 텍스트니까. 그리고 나온것이 [SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) 인데 자바스크립트를 이용해서 태그 속성에 class 이름
답답한 마음에 글을 쓰다.
이렇게 블로그에 답답한 마음에 글을 쓴적이 있던가. 참 이상한건 나이가 들수록 말할 사람이 점차 없어지고 있다는 안타까운 사실이다. 회사에서 팀 변경에 대한 지침이 내려왔다. 하는 일은 똑같은데 굳이 자리를 이동해야 하나 싶기도 하다. 약 1년이 지났다. 이회사에 온지도. 처음 3개월은 잘 몰라서, 꿈에 부풀어서, 그리고 나머지 6개월은
다들 예약하셨나? 온다. DEVIEW2012
**대란이었다. **재작년엔 못갔고, 작년엔 연차에 밀렸다.(정대리를 동영상으로 봤다.)
맥북에어에 make 설치하기.
최근에 오픈소스들을 다운 받아서 설치하고 있는데 그중에서 in-memory DB인 redis 를 맥북에어에 설치하려고 시도중에 make가 새로산 맥북에어에 없어서 redis 를 빌드하지를 못했었다. 그래서 mac  계열에서는 도데체 어떻게 make를 설치해야 하는지에 대해서 찾아보던중 쉽게 할수 있는 방법을 찾았다. Step by Step 으로 알려드리겠다.
제주도 다음(Daum) 스페이스 닷원을 다녀오다.
[지난해 다음(DAUM)GMC 에 놀러갔을 때,](http://ash84.tistory.com/741) 새로 사옥을 짓고 있다는 소식을 전해 들었는데 1년만에 스페이스 닷원 사옥을 보러가게 될줄은 몰랐다. 아무튼, 어무이, 동생과 제주도 여행
[뮤지컬] 잭더리퍼, 그땐 낭만이 있었지.
올해 두번째 뮤지컬 ‘잭더리퍼’ 를 보고 왔다. 나에겐 약간 생소한 뮤지컬이었던것 같다. 라이언 킹, 시카고 처럼 뮤지컬을 잘 모르는 사람도 이름만 들으면 아는 그런 뮤지컬이 아니여서 걱정을 했지만, 결과적으로 말하자면 재밌는 뮤지컬이었다.
[JAVA]현재 인코딩 출력하기
자바는 JVM 세팅을 통해서(이클립스를 통해서도 가능) 인코딩을 변경할 수 있는데, 사용자가 JAR를 실행시킬때, JVM 세팅에 따라서 인코딩을 다르게 줄 경우가 있다. 그럴때, 프로그램 내에서 현재 인코딩을 가져와서 사용해야 할 경우가 있다면 다음과 같이 인코딩을 가져오면 된다.
광복절 Google 첫 화면
![](http://ash84.net/wp-content/uploads/1/cfile6.uf.13081E43502AD7E8163D6B.png)
[뮤지컬] 맨오브라만차, 황정민 세대를 넘나드는 연기.
맨오브라만차를 봤다. 솔직히 난 뮤지컬을 그리 좋아하진 않는다. 프로그래머 일을 하고 나서 성격이 급해져서 그런지 영화 이상의 몬가를 보는건 좀 어렵다. 그리고 연극 보다 뮤지컬을 좋아하지 않는 이유는 노래가 많고 대사 전달이 분명하지 않기 때문이다. 그래서 난 뮤지컬을 좋아하는 여성분들이 이해가진 않는다. 아직도. 그럼에도 불구하고 맨오브라만차에 대해서 이렇게 블로그에 글을 쓰는 이유는 어떤 감동.. 같은것을 받아서 이기 때문이다.
MS Office 문서 변환 명령어 정리.
최근에 문서파일 내 텍스트 추출에 대한 [오픈소스(Apache.POI)](http://poi.apache.org/)를 패키징해서 테스트 하던 중에 비정상적인 MS 2003-2007 문서에 대한 내용추출이 안되는 문제가 있었다. 오픈소스 자체의 한계인지도 모르겠지만, 찾은 대안중에 하나가 바로 이러한 문서들을 상위버전의 문서로 변환해서 내용을 추출하는 것이다. 즉, ppt, doc, xls
Domino/Notes 오류코드 보는 프로그램
최근에 Domino/Notes 관련된 프로그램에 대한 오류를 볼 일이 있었는데, Notes 가 제공하는 API 에서 발생하는 예외에서는 오류코드를 출력할 수 있다. 첨부한 프로그램은 오류 코드에 대한 상세설명을 볼 수 있는 프로그램이다.
[JAVA] 공백제거와 미제거의 md5 차이에 대해서.
기술적인 것은 아니기 때문에 너무 큰 기대를 하진 마시길 바라며 쓴다. 일단 md5 키를 추출하는 방법은 이전 포스팅에서도 언급했었다. (링크) 최근에 md5에 대한 또 다른 생각이 있어서 이글을 쓰게 된다. 이전에는 캐쉬를 하기위한 키 값 데이터 추출에 사용했었는데, 최근에 어떤 내용의 중복여부를 체크 하기 위한 도구로 사용하기도 했었다. 그런데 그 과정에서 문자열 데이터의 공백 여부에 대해서 전처리가 필요하다는 것을 알게 되었다.
[C#] DLL 등록하기 regsvr32.exe
[SHELL] CPU CORE, 메모리 알아오기
서버 정보를 빨리 보고 싶을때가 있는데, 리눅스 서버에서는 때때로 불편할 때가 있어서 만든것이 기본적인 CPU CORE 수와 메모리의 사이즈 정도이다. 다른 블로그에 CPU CORE 수 체크하는 부분을 응용해서 만든것임을 미리 밝히는 바이다.
주간 스크랩 정리(7/2~7/6)
**리눅스 실행시간 측정 명령어 time**
4개월 간의 스터디를 마치며...
최근에 약 4개월간 참여해 왔던 스터디를 정리했다. 이 글을 쓰는 이유는 이번 스터디에 대한 개인적인 정리와 함께 그동안 활동하면서 느낀점 그리고 앞으로는 어떻게 참여하고, 진행해 나갈 것 인지에 대해서 생각해 보고자 한다.
[Python] ImportError: No module named _sqlite3
파이썬에서 자주 사용하는것 중에 하나가 sqlite3 라이브러리인데, 해당 라이브러리를 사용하기 위해서는 파이썬 소스 첫 머리에서 import sqlite 문을 넣어 주어야 한다. 그런데 import 를 한후에 실행을 시켜보면, 다음과 같은 에러가 떨어진다.
스크럼에 대한 간단한 소개자료.
**[Introduction of scrum 안성현 20120606](http://www.slideshare.net/sh84ahn/introduction-of-scrum-20120606 "Introduction of scrum 안성현 20120606")**
[Ruby] 제라의 공식을 이용해서 요일구하기.
Siri Proxy 서버에 올릴 모듈을 개발하던 중에 요일을 체크하는 부분을 개발해야해서 찾아 보던 중 “제라의 공식” 이라는 것이 있다는 것을 알게되었다. 제라의 공식은 기본적으로 그레고리력 1582년 10월 15일 이후에만 적용되는 공식으로 현재의 날짜(연도, 월,일)을 공식에 넣으면 해당하는 요일을 알수 있다는 것이다.
(동영상) The Scrum Framework
스크럼에 대해서 좀 재밌게 설명된 동영상을 찾던중 찾은 자료임. 나도 영어를 그리 잘 하진 못하지만, 설명해주시는 여성분께서 펜으로 그려가면서 설명해주는 지라, 스크럼의 프로세스에 대해서 대략적인 감이라도 잡을수 있
김진태 교수님의 clean code 설명
**[Clean code](http://www.slideshare.net/bbongcsu/clean-code-8660308 "Clean code")**
[스크럼] 제품 백로그와 스프린트 백로그(from msdn)
최근에 SCRUM에 대한 리서치를 스터디에서 도맡아서 하게 되어서 프리젠테이션을 만들던중 발견한 자료로, 제품 백로그와 스프린트 백로그를 비교한 자료이다. 출처는 MSDN 이다.
[Python] 특정로그 파일 이메일로 전달하기
엔진쪽에서 모듈을 개발하다보면 여러가지 일이 생기는데 그중 하나가 바로 엔진 재기동에 관한 부분이다. 엔진 재기동은 여러가지 경우에 일어나는데 주로 내부 모듈이 잘못된 동작을 수행하고 예외처리가 안되었거나 메모리의 잘못된 참조로 인해서 발생이 된다.
공감세미나(세션4) 박재성 - 자바 웹 개발자의 학습 로드맵
꼭 자바 개발자가 아니더라도 한번쯤 들어 볼만 하다. 개발자란 무술가와 같기 때문에 (절대 과학자는 아님) 선배 개발자의 경험은 시행착오와 기로에
github 로고에 마우스 우클릭을 하면?
![](http://ash84.net/wp-content/uploads/1/cfile25.uf.1470F0374F8FE01E0AA7AC.png)
[Stemming] English-Specific Stemmings Open Source
최근에 회사에서 아카데미라고 사내 교육 프로그램을 진행하는데 Information Retrieve 에 대한 내용이었다. 그 중에
[findbugs] FileWriter, FileReader DM_DEFAULT_ENCODING 처리하기
findbugs를 통해서 잠재적 위험 검사를 할때, 일반적으로 텍스트 파일을 읽거나 쓰는 코드에서 DM_DEFAULT_ENCODING 경고가 뜬다.
shop.github.com
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.117383474F80D93B068833.png)
온라인 일정관리 툴, trello.com 사용 후기
이전 부터 알고 있는 서비스이긴 했지만, 같이 자바 스터디를 는 분 중에 상급 개발자분께서 추천해준 툴인 trello.com. 일단 구글 계정을 기반으로 로그인을 할수 있다는게 편하고, 만약 회사에서 사용한다면 따로 이메일을 넣어서 가입을 하던지 해서 사용해야 겠지만.
[DesignPattern] 데코레이터 패턴
**[디자인 패턴 데코레이터 패턴](http://www.slideshare.net/sh84ahn/ss-12262824 "디자인 패턴 데코레이터 패턴")**
[C#] 실행시간/동작시간 측정하기
[CleanCode] 조건문의 캡슐화를 하자.
CleanCode의 신봉자로서 맨 처음 여러분께 소개해드릴 내용을 그리 거창한 것도, 특별한 디자인패턴을 요하는 기술도 아니지만 개인적으로 CleanCode라는 책을 읽고 가장 많이 사용하는 부분을 가장 먼저 소개해 드릴려고 합니다.
[C#] WMI를 이용한 현재 메모리 사용량 구하기
[JAVA] Gson 라이브러리로 JSon 이용하기
최근에 회사에서 프로젝트를 하면서 쓴 것은 아니고 프로토타입핑을 하는 도중에쓴것이 있어서 소개하려고한다. 목적은그랬다. 데이터양이엄청많았는데서버에서가져오기벅차니까결과를캐쉬하자는목적이었다. 그런데메모리에올려져있는캐쉬를사용하자니서버에부담도되고, 그 사용량 역시 만만치 않다는 결론에이르렀다.
#근황.. 2012.01.24
**# 프로젝트 관리툴을 찾고 있습니다. **웹으로 되면서 맥(mac)에서도 되는 그런 졸라 쿨한 툴. 만약 제가
1) 구글 사이트를 이용해서 위키 만들기
![](http://ash84.net/wp-content/uploads/1/cfile22.uf.1648A33A4F15A04B31AB58.jpg
[JAVA] 단위테스트를 보다 쉽게, JUnit 을 사용하자.
단위 테스트를 어떻게 구성해야 할까에 대해서 생각해 볼 경우가 종종 있는것 같다. 실제로 필자가 속한 조직에서는 아직 단위테스트에 대한 필요성을 인지 하지 못한것인지는 모르겠지만, 아무튼 새롭게 프로토타입(Prototype)을 구성중인 자바 기반의 문서 이미지 추출 프로젝트에서는 클린코드와 단위테스트를 필수로 포함시키기로 하였다. <
[Sejong] 한글인지 여부 체크(Java)
한글인지 아닌지를 체크하는 함수입니다. 입력받은 글자 하나하나를 유니코드 상의 한글 범위안에 있는지 체크하고 부분적으로 한글인지, 전체가 한글인지, 아니면 입력한 문자열이 한글이 아닌지를 체크하는 함수 입니다.
2011/
[Python] 장고(Django) 설치 및 이클립스(eclipse) 세팅
일단 장고(Django) 의 개념이나 필요성에 대해서는 필자도 아직 초급자이므로 애기하지 않고 차후에 본 블로그를 통해서 해당 부분에 대해서 자세히 소개 하도록 하겠습니다. 그래두 일단 장고(Django) 를 설치해 보고, 유난히 파이썬(python) 관련된 쪽이 개발환경(IDE)가 잘 마련되어 있지 않은데, 장고(Djan
[Python] 파일내용 찾기
특정 폴더 안에 있는 텍스트 파일을 읽어서 해당 내용을 검색하면 보여주는 파이썬 소스입니다. 기본적으로 스크립트처럼 대화형으로 만들었구요. !start 명령을 치시면 지정한 폴더내 파일을 읽어와서 검색을 시작할 수 있습니다. 소스는 간단하니까 보시면 금방 이해될것 같네요.^^ 추가적으로 폴더 지정을 한다던가 하는 부분을 추가하는 등의 확장에 대한 여지는 남아 있으니, 잘 활용하면 좋을것 같습니다.
SharePoint server 운영자 6차 세미나 후기
![](http://ash84.net/wp-content/uploads/1/cfile23.uf.194249474EEFCB5910C9D2.png)
....
진짜 무서운건.. 내가 뭔가
#2011.12 근황
그리<
[JAVA] HashTable 을 이용한 로컬캐쉬(LocalCache)
posterous 설치
![](http://ash84.net/wp-content/uploads/1/cfile23.u
[C/C++] IsHangul(char * input_text) 입력 문자열 한글 판단.
[JAVA] MD5 + 자릿수
최근에 해쉬테이블의 키 값을 만들기 위해서 입력 문자열에 대한 MD5를 추출하는 자바 소스를 인터넷에서 구했는데, 입력 문자열에 따라서 MD5 로 추출되는 자릿수가 달라서 해쉬테이블의 키 값으로 쓰기에는 조금 불편한 점이
새삼스러운 아이폰4S 사용기
새삼스럽게 무슨 아이폰4s 사용기냐고 반문하시는 분들이 있겠지만, 꽤 오랫동안 3GS를 사용해 왔던 나에겐 이 새로운 스마트폰은 스마트폰의 새로운 지평을 열였다고 생각한다. 그리고 몇가지 느낌을 간략하게나마 정리해 보았다. <
나를 위로해 주는 잉여력.
**개발자에게 잉여력이란 무엇일까? **그리고 왜 필요한 것일까 하는 생각을 해 보았다. 최근에 필자는 새로운 회사에
[C/C++] 현재 시간 가져오기
현재 시간을 가져오는 소스코드. 물론 시간관련 헤더파일이 **#include **가 추가 되어 있어야 한다. 좀더 유용하게 쓰기 위해서 현
[C/C++] 파일읽고 저장하기
사실 블로그에 이런 소스를 올려야 하나 하는 생각도 들었다. 나만의 좀더 특색있는 코드를 올리고 싶었지만, 너무 기초적인 것 이기에 별로 안 올릴려고 했는데, 그래두 많은 내용이 많이 공유되면 더 좋은 거니까 .. ^^ 그리고 나도 가끔 정작 쓸때가 되면 생각이 안난다능.
테스트와 체크 리스트
새로 들어간 회사에서 주로 하는 일은 모듈을 분석하고 개선하는 일을 맡고 있는데, 특히 우리 팀의 가장 큰 업무중의 하나는 바로 JIRA라는 시스템을 통해서 질의해오는 기술적인 문제들에 대해서 답을 해 주는 것이다. 매우 어려운 기술적인 문제도 있지만, 사실은 설정 하나만을 잘 모르거나 잘못사용해서 발생
[C/C++] strlen() 과 String 클래스의 length()함수의 차이점.
문자열의 갯수를 구하는 함수만큼 공통적으로 여러 언어에서 구현되어 있는 기능도 드문것 같습니다. 오늘 소개할 내용은 C++ 의 내에 있는 char * 형의 문자열의 갯수를 세어주는 `strlen()` 함수에 대해서 이야기 하려고 합니다. 제목처럼 일반적인 객체지향의 언어 자바나 C#의 String 클래스에서 사용하는 length() 함수와 어떻게 다른지 이야기 하려고 합니다. 물론 아시는 분들도 있겠지만.^^
[C/C++] strlwr() 함수가 먹히지 않을때? 대문자를 소문자로.
[App] 한우찾기 2.1 출시.
**한우찾기 2.1을 출시하였습니다.**(we release the app “Search Hanwoo v2.1”)
SVN Commit 시, Could not use external editor to fetch log message
svn commit 시에 간혹
스티브 잡스를 추모하며.
![](http://ash84.net/wp-content/uploads/1/cfile1.uf.12445E444E8FE501189270.png)
정보는 우리에게.
![](http://ash84.net/wp-content/uploads/1/cfile25.uf.180EB0374E87483C06B5F2.jpg)
당신은 손이 참 이뻐.
당신은 손이 참 이뻐.
메인이 아닌것들.
![](http://ash84.net/wp-content/uploads/1/cfile1.uf.137F08384E874B680DC760.jpg)
소셜 미디어 혁신 2011
소셜 미디어 혁신 2011 동영상입니다.
STS(Search Tech Summit) 빅 데이터 시대의 검색 기술과 협업 전략 간략 요약
![](http://ash84.net/wp-content/uploads/1/cfile22.uf.136617434E832AE119877E.jpg)
당신에게 길이 될 "프로그래머 그 다음 이야기
이 책을 접하게 된것은 SNS 에서 책이 나오기 전에 나왔던 홍보 덕분이었던것 같다. 사실 이런 책들, <뉴욕의 프로그래머>
[제주도 여행기] 2일차 - 다음(Daum)을 가다.
[2011 제주도 여행] 1일차 - 오설록과 닐모링동동 까페를 가다.
첫 직장에 대한 소감.
이런 글을 누구나 볼 수 있는 블로그에 쓴다는 것이 앞으로의 나의 커리어에 영향을 미칠수도 있다는 점을 나는 잘 알고 있다. 또한 결코 누군가를 비판 및 비난 하고자 쓰는 글이 아님을 미리 알린다. 하지만 내가 나이가 들고 다른 위
[2011 제주도 여행] 반가운 만남과 술 한잔.
조금 늦은 출발로 인해서 조금 늦게 도착한 제주도. 한 8시 반조금 넘어서 도착한 것 같다. 하루 렌트했던 차를 찾으러 주차장으로 갔다. 2년전 동생과의 이별 여행을 위해서 가족과 함께 왔던 공식적으로 마지막 가족여행이었던 제주도에는 차를 찾으러 제주도를 갔지만말이다. 딱히 제주도의 밤은 다르지 않았던것 같다. 다만 하나 신기한건.. 생각보다 제주도의 야경이 별루 없었다는 것이다. 서울 정도는 아니더라두 8시 반 정도이면 굉장히 많은 도시의
[2011 제주도 여행] 1일차 - 엉또는 우릴 허락하지 않았다.
‘오설록’을 향해 고고하는 중에 1박 2일에서 봤던 ‘엉또폭포’ 생각이 났다. 비가 오면 폭포가 된다는 ‘엉또’ 이름만큼이나 참 까칠한 폭포라는 생각이 들었다. 마침 차를 탔는데 비가 좀 내려서 한번 가보자고 해서 가게 되었다. 입구는 약간 관광지 스럽지 않게 생겼다. 역시 1박 2일의 효과여서
[2011 제주도 여행] 1일차 - 만장굴과 황금륭버거
가는 날이 장날이라는 말이 있다. 설마설마 했던 일이 일어났다. 어제의 음주로 인해서 곤히 자긴했지만, 늦지 않게 일어났다. 오늘은 대영이 형과 함께 렌트한 차를 가지고 여행을 다니기로 했는데, 헉.. 비가온다. 나의 관심은 날씨 보다는 사실 ‘황금륭 버거’ 라는 것에 쏠려 있었다. 예전에 티비에서 본 정준하가 일본에서 먹었던 대왕만두 같은 느낌이어서 도전해 볼까해서.
[2011 제주도 여행] 여행의 시작은 이렇다.
제주도 여행을 생각을 전혀 하고 있지않다가, 1차 면접이 합격이 되고, 2차 면접도 분위기가 좋음을 느껴서 처우협의가 끝나면 여행을 가자는 생각을 가지고는 있었다. 다음 직장 출근 전까지 무슨일을 할 수 있을까.. 하는 생각을 하다가 여러가지가 있었지만, 문득 예전에 생각해 두었던 제주도 자전거 여행이 생각났다.
[iOS] Document + 디렉토리/파일
앱 업데이트에 대한 단상.
몇개의 앱을 개발하지도 않고 이런 애기를 하는게 웃기긴 하지만, 주변의 다른 앱 개발자 들의 말을 들어보아도 앱 업데이트에 대한 깊은 생각이 필요하다는 공감대가 형성되곤 하는것 같다.
[Cocoa Design Pattern] 24.Bundle
![](http://ash84.net/wp-content/uploads/1/cfile1.uf.111CE2494E1D5B1024A668.jpg)
[Cocoa Design pattern] 23. Decorator
![](http://ash84.net/wp-content/uploads/1/cfile23.uf.205946374E1D407127DB25.jpg)
[Cocoa Design Pattern] 21. Prototype
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.197E8A4E4E1BAD76357DCD.jpg)
[Cocoa Design Pattern] 22. Flyweight pattern
![](http://ash84.net/wp-content/uploads/1/cfile24.uf.122D734C4E1C04261DF168.jpg)
before sunset
![](http://ash84.net/wp-content/uploads/1/cfile10.uf.1103FB434E1B09430FD5B5.JPG)
las vegas
![](http://ash84.net/wp-content/uploads/1/cfile22.uf.1464063F4E1B0E853301D8.JPG)
[iOS] Create Directory
디렉토리를 생성하는 코드입니다. 일단 도큐먼트 경로를 가져와서, 해당 생성하려는 폴더 이름을 붙여주는 방식입니다. Objective-C 에서 파일 및 디렉토리 처리를 담당하는 부분은 NSFileManager 에서 담당하기 때문에 관련 된 사항이 있으면 그 부분을 보면 될것입니다. Release는 알아서 하시길.
you
![](http://ash84.net/wp-content/uploads/1/cfile27.uf.1768383F4E1B0AD1150D27.JPG)
wood
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.171EAB354E175BF71AB9DB.jpg)
Getty Center
![](http://ash84.net/wp-content/uploads/1/cfile7.uf.121E98354E17553316A016.JPG)
white wine.
![](http://ash84.net/wp-content/uploads/1/cfile3.uf.2051E43A4E1751AD134C02.png)
그게 그렇게 중요한건지..
점수 맞춰서 갔던 대학의 전공이라는 것이
프로젝트 종료와 미완성.
최종 철수 통보를 받았다. 장장 6개월의 프로젝트 기간. 그리 길지도 짧지도 않은 기간이었던것 같다. 아쉽게도 이번 프로젝트 역시 미완성이 될 확률이 높다. 벤처에서의 2년 그리고 3년차에 접어 들고 있는데, 참 제대로된 소프트웨어 하나 개발하기 힘들다는 것을 또 느낀다.
Client는 왜 늘 "간단한 기능" 이라고 말하는가?
자체 제작하는 프로그램 혹은 내부 하드웨어 제품을 개발하기 위한 프로그램이 아닌 이상에는 대부분 프로그램 개발에는 클라이언트라는 사람들이 존재한다. 속된말로 “갑” 혹은 물주, 발주처, 돈을 주는 사람 이런 사람들로 불리우는 사람들 말이다. 프로그램 외주 일을 몇번 하면서 몇명의 클라이언트들을 만나 보았다. 사장님도 있었고, 발명가도 있었고, 교수님도 있었는데, 그들의 공통점은 첫 마디가
# 길이 아니면, 가질 말라고 했다.
길이 아니면, 가질 말라고 했다.
[Cocoa Design Pattern]18ch. Responder Chain
**코코아 디자인 패턴 18장. 리소폰더 체인**
# 하루하루..
또 하루가 지나간다.
[Cocoa Design Pattern] 17ch. Outlet, Target, Action
**![](http://ash84.net/wp-content/uploads/1/cfile1.uf.160435454E1A59C5322140.jpg)
# 블로그가 너무.. 프로그래밍 위주라.
블로그가 너무 프로그래밍 위주로 가는것 같아서 .. 프로그래머 같지않은 프로그래머가 되고자 했는데, 너무 geek 해지는것 같아서, 좀 여유를 가져 볼까 한다. 마음의 여유가 돈이 별루 없어서 안 생기는 것 같기도 하고. 아무래도 경제적인 것이 뒷받침이 안되면. 힘드니까.
[MFC] Change View in CSplitterWnd
이번 프로젝트를 하면서 허벌나게 CSplitterWnd 와 함께 동거동락을 하고 있는데요. MainFrame 에서
[iOS] UIImagePicker 호출 후, ViewDidLoad가 호출되는 이유.
최근 개발하고 있는 프로젝트에 겪었던 기 현상을 먼저 이야기 하자면 이렇다.
[MFC] Draw PNG
# 뒤늦게 쓰는 한우찾기 어플 후기
[C++] Single Ton
뭐 특별한건 아니고, 그냥 자주 쓰는 건데 자주 까먹어서 써놓는 거임. 싱글턴은 워낙 실용성이 높은지라. 기본형입니다. 이외에도 다양한 변형형태가 존재하죠^^
# 알지 못할 이야기.
굉장히 많은 시간이 지난것 같다. 그런데 난 제자리다. 정신을 차려보니.. 몰 하고 있나 하는 생각도 든다. 전혀 다른 세상에 와 있었던 것이다. 곰곰히 생각해 봤다. 원래 내가 하고 싶었던 것은 무엇이었을까? 하고 말이다.
now working..
우리집 한우.
오잉?!! 한우찾기 162위.
![](http://ash84.net/wp-content/uploads/1/cfile28.uf.1642B0484DD776321121BA.PNG)
[iOS] HTML 파싱 - Java Script 와 UIWebView 이용하기
HTML 파싱에 관한 부분은 한우찾기 1.0 및 2.0 에 걸쳐서 가장 핵심적인 부분이라고 할 수 있다. 총 2
[iOS] 자동 개월수 계산 코드
이번 한우찾기 2.0 에 들어간 코드인데, 텍스트 형태로 받은 날짜와 오늘의 날짜 사이의 간격을 계산해서 개월수를 구하는 코드입니다. 별 다른 어려운 코드가 없으니 보시면 바로 이해가 가능할것 같네요. 자 코드 나갑니다.
[iOS] UIAlertView + UIActivityIndicatorView
# 왜 나는 학교를 떠났는가?
곧 있으면 사회에 나온지 2년이 되간다. 즉, 3년차에 돌입한다는 애기다. 처음 회사에 왔던 마음은 3개월 후에는 다 사라지고, 6개월이 되면 흔적조차 없다는 말은 정확히 맞아 들었다. 그럼에도 불구하고, 어머니 김여사님께서 맨날 나에게 “넌 좀더 학교에 다녔어야 했다.” 라는 말을 할때 마다 솔직히 아주 가끔은 그러고 싶었다.
[App] 한우찾기 v2.0 출시
장장 1개월의 개발기간. 그리고 약 일주일간의 심사과정을 지나서 지난 일요일(5/1)에 하국 앱스토어에 한우찾기 v2.0 이 정식 업데이트 되었습니다. **
한우찾기 v2.0 프로모션 동영상
[![](http://ash84.net/wp-content/uploads/1/cfile29.uf.19138D514DBFC55F25B813.png)](http://itunes.apple.com/kr/app/id427300296?mt=8 "[http://itunes.apple.com/kr/
한우찾기 테스트 페이지(Hanwoo Test Page)
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.116CF3434DB35BAE0CF46F.png)
[앱 파헤치기] 고생해라. 미투데이 앱의 사용자여!!
저는 몇가지 SNS 를 하는데요, 트위터, 페이스북, 미투데이가 가장 대표적인 것이겠죠. 트위터는 모바일에서 많이 하지만, 사실 페이스북은 모바일에서 좀 불편해서 잘 안하게 되고.. (링크 연결 입력이 잘 안되는..) 그리고 미.투.데.이. 개인적으로 애기하자면 미투데이 초기때 부터 했고, 트위터 모를때 부터 SN
[앱 파헤치기] 페이스북 앱 UI의 일관성 문제?
가장 많이 다운을 받는다는 페이스북 아이폰 앱. 최근에 업데이트가 되었는데요. 저 역시 많이 사용하고 있고, 기존의 웹 에서 사용하는 페이스북 과 비슷한 형태여서 마음에 들더라구요. 최근에 업데이트가 된 사항을 보면 라이브피드 상에서 하나의 글에 대한 동작, 즉 + 를 눌렀을때 나오는 UI 가 기존의 경우에는 TableCell 이 왼쪽으로 밀리면서 [좋아요] [댓글] 이 나왔는데 현재는 그 부분이 작은 뷰로 나오게 되었습니다. <
orcas on ipad
[iPad app](http://vimeo.com/17427899) from [Tapakorn Katunchalee](http://vimeo.com/sapgreentomato) on [Vimeo](http://vimeo.com).
한우찾기 어플 출시.
안녕하세요, 2월 앱인데, 이제서야 인사드리네요^^;;(개발만 2월에 시작한 앱임.ㅠ)
[iOS] 당신의 앱에 로딩화면을 넣어주는 센스~!!
2월 어플이 상당히 많이 늦어지고 있는데, 그만큼 1월에 비해서 공을 많이 들이게 되는것 같습니다. 예전에 언급한것 처럼 한우이력조회를 할 수 있는 어플이 될것같습니다. 이제 거의 코드정리 및
[iOS] UIColor 글자색 변경
아이폰 개발 상에서 텍스트 글자색 바꾸는 코드. 일반적인 Color는 몇가지 지정할 수 있으나 RGB 로 지정할수도 있다. 대신에 주의 할 점은 원래 우리가 알고 있는 RGB를 255로 나누어서 입력 해 주어야 한다는 것. 주의하자.  이것 외에도, colorWithHue:saturation:brightness:alpha:, c
한남동 Take Drawing Out, 하늘과 맞닿아 있는 까페
예전에 성북동 Take Drawing Out 까페에 갔었을때에도 참 공간 디자인에 대해서 새로운 생각을 하게 됐는데, 한남동에도 생겼다는 소식을 접하고 여자친구를 졸라서 가게 되었습니다. Take Drawing Out의 특
NHN Library1을 다녀오다.
NHN Library1 을 다녀왔다. 왜 갔냐고 말
[C#] Click Once 배포오류 fileloadException에 대해서.
요즘 계속 배포작업을 하고 있습니다. 처음 배포 한 msi 파일이 배포오류가 생겼었는데, 그 오류를 자세히 들여가 보면 fileloadException 에 의해서 발생된 오류였다. 처음에는 기본적으로 ini 파일이나, 폰트파일 혹은 외부 dll 파일을 못 읽어서 문제가 생겼나 해서 예외처리를 한 상태에서 해 봤더니, 걸리지
2011 블로그 계획.
블로그 계획이라고 거창하긴 하지만, 2011년에는 프로로 거듭나기 위한 한해라고 생각하고, 독한 마음 먹고 살기로 했기 때문에 블로그 역시 독하게 운영 할 것 같다.^^ 그렇다고 막 댓글 달아 주시는 분들과 악플로 파이팅 하는건 아니고 좀더 처음 블로그를 만들었던 마음 그리고 나 스스로의 발전적인 부분을 함께 해 줄 수 있
# 한글 오토마타 관련 자료
이번 프로젝트가 언어 및 문자에 관련된 것이라서 조합자 중에서 특히 우리나라 말의 경우 초성 중성 종성이 있는데 그것들이 실제로 프로그래밍의 어떤 컨트롤 상에서 제공이 제대로 되는 경우가 없습니다. 사용자의 키보드 입력은 제대로 처리 하지만, 마우스로 버튼을 눌러서 한글의 제대로된 입력을  하려고
문화예술계 분들 주목!! QR 코드를 활용하세요~
정말 스마트 폰, 앱 그런것들이 1년.. 이제 한 1년 반정도 된것 같은데 아이폰 3GS 출시 이후로 많은 것을 바꿔놓은것 같아요. 물론 아이폰 4과 갤S 역시 스마트폰의 대중화의 선봉에 섰다고 볼수 있겠죠. 아이폰 나오는 달에 제가 군대에 갔다 나왔는데 실로 깜짝 놀랐습니다. 진짜 많은 사람들이 카카오 톡을 쓰더군요.
어떤날의 약속
오늘.. 문득 그런생각이 들었다.
문득.. 그런생각이 들었다.
문득.. 그런 생각이 들었다. 버스정류장에 서서.
직장인을 위한 의사소통 커뮤니케이션 맨날, 나에게 선물을?
어제 집에 왔더니 이상한 봉투하나가 와있더군요. 나에게 편지를 보낼 사람이 없는데? 설마 영장? 나 훈련소다녀왔는데?이런 어이 없는 불안감을 떠 안은채 봉투를 열었더니.. ![](http://ash84.net/wp-content/uploads/1/cfile10.uf.1213CA384D4743A50BBD55.jpg)![](http://ash84.net/wp-content/uploads/1/cfile6.uf.1313CA384D4743A50C21D4.jpg)
아이폰 위치정보의 진실.
예전에 미국에 갔을때, 갔다 오니 폰 요금이 한달요금이 무려. [46만원이 나왔다는 애기를 했었는데요.](http://ash84.tistory.com/638 "[http://ash84.tistory.com/638]로 이동합니다.") 최근에 아이폰 스터디를 하면서 코어
[devMomo] Monthly App Project.
devMomo에서 이번 년도 2011년에 야심차게 기획한 Monthly App Project에 대해서 설명드리겠습니다. Monthly App Project의 기원은 전혀 다른 영역에서 다가왔습니다. 그것은 바로..
[MomoTwit] 모모트윗 v0.9 출시.
# 1/19 홍대입구역.
매주 화요일 마다 홍대 입구역을 간지 어언.. 4주차가 됐나? 좋은 계기로 좋은 사람들과 재밌는 스터디를 했다. 5주 과정이라 이제 한주 밖에 안 남았다는 사실이 조금 아쉽긴 하지만, 좀 시간이 없기에 다음 단계로 넘어가게 됐다. 홍대입구역 2번 출구로 나와서 토즈
[MomoTwit] Plan Of Source Open (소스공개 계획)
![](http://ash84.net/wp-content/uploads/1/cfile9.uf.1540533D4D34E1F62BAFFE.PNG)
# 1/17 어찌 어찌 올리긴 했는데..
어찌 어찌 올리긴 했는데.. 아, 이래서 사람들이 Apple 앱 스토어 심사가 까다롭다라고 하는가보다.. 이렇게 생각이 들지만, 난 이제 겨우 시작했을 뿐이다. ㅠㅠ 사실 프로비전, 앱 아이디, 그리고 SKU Number 등등이 어떻게 상충하는지 모르겠다. <
# 1/14 토해냈다.
워크샵이 끝났다. 많은 것을 토해낸것 같다. 솔직히 너무 말을 안하고 살았다.
# 1/12 new Twit.
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.1460A9534D2DB864032E49.png)
# new Design
![](http
# iPad 버전의 Prezi
# 마이크로소프트 Arc Mouse 버전 2

# 1/8
2011 년이 밝았다. 후회가 남지 않게 살기 위해서 1, 2, 3, 4월 등등 올해의 대략적인 계획. 큰 그림을 그리면서 프린팅해서 한쪽 벽면에 나만 볼수 있는 공간에 붙여 두었다. 떠벌이 처럼 블로그에 세세히 말하긴 싫고. 아무튼 주저리 주저리 블로그에 쓰게 되는 이유는 사실은 아는 형님의 블로그를 보고 자극받아서 일
2010/
# 2010 년 결산.
1, 2, 3, 4, 이런식으로 가장 재밌었던 여행, 가장 기억남는 프로젝트 등등을 나열하면서 쓰려고 했으나. 생각이 바뀌었다. 진부하기에. 그래두 할건 해야겠다. 2010년은 나에게 손해도, 이득도 없었던
# 음악왕의 콘서트를 가다.
나는 개인적으로 윤종신을 좋아한다. 사실 HOT나 신화의 세대긴 하지만, 주위의 여러 사람들의 영향으로 그
# 언제 봐도 기분이 좋아지는 사람들이 있다.
# 크리스마스 다음날.
크리스마스 다음날은 늘 그렇다. 그나마 휴일이니 다행이지. 평일이었으면 또 마음이 붕 띄였을듯. 돌이켜보면 크리스마스는 여자친구를 사귄 후 부터는 조금 신경써야 하는 날이 되버린것 같아서 부답 스럽긴 하지만, 올해의 크리스마스는 글쎄.. 동생과 가족과 함께 보냈다. 군대를 갔다
쩨쩨한 로맨스, 성인만화를 생각하게 만들다.
![](http://ash84.net/wp-content/uploads/1/cfile27.uf.156C6B354D0C15910D42A7.jpg)
# 병렬적인 일의 계획, 나는 할수있었는가?
이민석 - 한국에서 소프트웨어 엔지니어로 성공하는 법
트위터에 아는 형님이 추천한 동영상
한밤중의 주저리. 주저리.
언제 부터인가 소셜네크워크 서비스 즉, SNS 서비스 라는 것들이 우리 주위를 감싸고 돌았다. 어찌보면 그러한 서비스들은 조금은 치졸하기 그지 없다. 어떤 이들은 인문학과 공학의 만남, 인간 본성을 자극하는 서비스 라고들
# 졸리다. 졸려
졸리다. 졸려.  자자. 성현아.
방가방가, 외국인 노동자가 웃을수 있는 그날까지.
우연히 보게된 방가방가라
[C#] 윈폼 컨트롤 박스 없이 마우스 드래그앤 드롭으로 이동.
원래 다른 분 블로그에 있었던 것인데, 퍼왔습니다. 출처를 표시해야 하는데, 프로젝트 코드에 넣은지 꽤 돼서 출처 찾기가 힘드네요. ㅠ 혹시 보시다가 본인이 쓴 글이라고 하시면
나의 또 다른 조각들.
어제 연구실 사람들과 술을 한잔 걸 치던 중 애기 나온 것 들중 하나가. 트위터에서 보여지는 내 모습과 현실세계에서 보여지는 내 모습과 다르다는 것이었다. 트위터에서는 조금 젠틀하게 보이지만 실제로는 그렇지 않다는.. 의견
최근 근황.
**#1. 스킨 바꾸기기는 이제 그만~ **
Inside Paul Smith
Inside Paul Smith
나도 맥북 프로 샀다. ^^ 교육할인 받는법
큰맘 먹고 맥북 프로를 샀습니다. 사실 저는 윈도우 프로그래밍을 주로 하고 있고 애플빠도 아니고, 스티븐 잡스 형을 좋아하기 보다는 빌 게이츠를 더 좋아합니다. 그럼에도 불구하고 맥북 프로를 구입했습니다. 여러 가지 이유가 있겠지만, 몇 가지 나열해 보면 다음과 같습니다.
미국여행에 도움이 된 아이폰 앱들.(지극히 주관적임)
샌프란시스코, 뉴욕, 라스베가스, LA 등 10일간의 미친 강행군 여행을 다니면서 도움이 되었던 아이폰 앱들이 있어서 소개 하고자 합니다. 다소 의혹이 있을 수 있으나, 사람마다 아이 폰을 쓰는 성향이나 또는 여행성향이 다르므로 이해해주시기 바랍니다.
프로그래머의 사회적 기여에 대해서. (About Social Contribution of Programmer)
25연대 436기 전문연구요원 기초군사훈련 후기
9
호감형 스타벅스
호감형 스타벅스가 있다
[폰트 관련 특집] 3. 제작한 폰트를 응용프로그램에 적용하자.
유니코드와 폰트와의 관계 그리고 폰트 제작에 대해서 이전 포스팅에서 알아 보았습니다.
[폰트 관련 특집] 2. 폰트를 제작하려면? 폰트 개발 툴이 필요하죠~
[앞 시간에 이어서
[폰트 관련 특집] 1. 유니코드와 폰트와의 관계에 대해서.
이번 프로젝트를 하면서 폰트를 개발하고
휴가때 CEO 만 책읽냐?
현실에는 없는 무적의 옆집 아저씨.
레오 광팬이 쓴 뒤늦은 인셉션 후기.
# 끄끄적임.
# 찜질방은 참 적응하기 어렵다.
1.
디자인네트에 실린 나의 첫 Public Writing
디자인네트 8월호에 제 글이 실렸습니다. 2010 월드 IT 쇼(WIS) 에 대한 포스팅을 보시고 기자분께서 연락을 주셔
블로그 포스팅의 지루한 레이아웃.
![](http://ash84.net/wp-content/uploads/1/cfile27.uf.162CA5024C50E9752018C1.jpg)
아이폰 수리기, 당신의 아이폰이 망가졌다면??
**사건의 발단**
Sinapi Korea Ceestation Beta
보건복지부 지원의 휴대형진단치료기기개발센터 (Ubiguitous Biomedical Systems Development Center (UBDC)
Client(PDA) – Server기반의 얼굴인식 시스템 개발
네트워크 기반 지능형 로봇 시스템 설계 및 구현
[C#] Unicode To String
공간이 사람을 만든다.
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.183BC8234C32E10F5C949A.jpg)
[C#] Bi-Direction TextBox
최근에 하는 프로젝트 때문에 Bi-Direction 이라는 것에 대해서 알게 되었다. Bi-Direction 이라는 것은 글씨를 쓰는 방향이 원래 서양 혹은 우리나라와 같은 왼쪽에서 오른쪽으로 향하는 방향이 아닌 반대 방향을 의미하는 것이다. 왜 이게 필요한가? 라는 의문을 던지기 전에 사실, Bi-
액션이야 코믹이야? 나잇 앤 데이
블로그 하면서 생긴 최고의 일!!
블로그를 시작한 지, 벌써 4년여 정도 된 것 같습니다. 2006년도에 처음 테터툴즈를 발견하고 자료를 정리하려는 수단으로 처음 블로그를 시작했습니다. 호스팅 비용이 만만치 않아서 지금의 티스토리로 옮기면서
탈옥보다 못한 아이폰 OS4: 돈 받는다면 사기다.
**탈옥보다 못한 아이폰 OS4: 돈 받는다면 사기다.**
MBTI 결과. INTJ 라니.. 딱 맞넹?^^
능숙함과 익숙함의 경계에서.
처음 프로그래밍 언어를 접할때가 생각이 난다.
공간이 나를 설레게 한다, 성북동 Take Out Drawing
**
# 프로그램 구조가 프로젝트에 미치는 영향
**
# 6월 2일 첫, 투표를하다.
**
# 난 아이폰에서 앱 디자인한다. Interface
우연히 이곳저곳 찾다가 발견한 **Interface App**
# 더이상 선택받은 나라가 아닌 이스라엘
이스라엘이 팔레스타인 가자지구로 향하는 구호 선박을 습격해서 10명이 사망한 사건이 발생했습니다. 사실 그 동안 이스라엘과 팔레스타인의 대립은 가장 큰 국제적인 문제 였습니다만, 구호선박을 향해서 총을 겨눈 이스라엘에 대해서 아랍권 다수의 국가 뿐만 아니라, 미국과 유엔에서도 유감의 표시를 하고 있는 상황입니다. <
# 2010 월드 IT 쇼 관람 후기
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.163860164BFBAC8458A9A0.png)
# 아이콘 찾기 좋은 사이트 IconFinder.com
![](http://ash84.net/wp-content/uploads/1/cfile2.uf.161319044BF9D0036ADBAE.jpg)
# Make Program
프로그램을 개발한다는 것은 언제 부터인가 협업이라는 개념에 대해서 생각하지 않을수 없었다. 단순히 한 개인이 하나의 프로그램을 개발하는 시대가 저물면서, 아니 어쩌면 너무나 큰 시스템들을, 너무나 빠르게 요구하는 시대일 지도 모른다.
# 이제 곧 입사 1년차.
![](http://ash84.net/wp-content/uploads/1/cfile9.uf.126F741F4BF481C7534359.jpg)나는 오늘도 포르
# 삼성 바다 플랫폼 SDK 공개 및 설치
오늘 삼성 바다(bada) 플랫폼 개발 SDK 에 대한 이메일이 왔더군요. SDK 다운 받으라는 메일이어서 한번 받아봤습니다. 저는 인스톨 버전을 받았는데 한 300 메가정도 되는것 같습니다. 설치는 생각보다 오래걸리진 않았습니다.
[BOOK] 27살 이건희 처럼.
**27살 이건희처럼.**
# MS Courier 중단과 아이패드의 대항마.
이미 기사에서 봤듯이 MS의 Courier 프로젝트는 사실상 개발이 중단된것으로 보인다. 사실 아이폰이 우리나라에 들어오기 전 부터 Courier 에 대한 컨셉 동영상이 기즈모도를 통해서 보게 되었고 컨셉대로 개발이
# 아이폰 터치의 귀찮음.
아이폰을 사용한지도 벌써 근 4개월이 다 되어간다. 탈옥도 해보고 각종 해킹 어플들도 심어보면서 사용하기도 했다. 우연히, 3.13 으로 업그레이드 된 새벽에 모르고 복원 눌러서 지금은 순정을 쓰면서 각종 어플을 사서 쓰고 있지만, 아이폰에 대한 나의 반응은 상당히 만족스럽다.(하지만 요금은 늘 부담. ㅠ)
[C#] WinCE InputPanel(가상 키보드) 위치 조정하기
WinCE 6.0 환경에서는 보통 키보드와 마우스가 제공되지 않는 환경입니다. 때문에 터치스크린이 마우스를 대체하고 키보드는 SIP 즉, 가상키보드가 그 역할을 대체합니다. 때문에 대부분의 WinCE는 포팅과정에서 가상 키보드
[C#] GPS 데이터 Parsing 시간과 위도 경도 가져오기
이번시간에는 GPS 정보를 가져오는 부분을 다루려고 합니다. 다들 알다시피 GPS는 보통 시리얼 통신을 통해서 Com Port로 들어오게 됩니다. 그런데 GPS라고 해서 Latitude와 Longitude가 바로 들어오는 것이 아니라 GPS NEMA 프로토콜의 형태로 들어오게 되고 그 프로토콜을 해석해서 Application에서 필요한 정보를 우리가 취득하면 되는것이겠지요.
[C#] 이미지 Fade in 하며 보여주기
# 포켓피씨 와 아이폰 그리고..
포켓 피씨라는 제품군을 처음 접한건 2005년 즈음이었던것 같다. 때마침 폰을 잃어버렸던 차였고 아는 형이 PDA 관련된 프로젝트를 진행하는 것을 보면서 자연스럽게 포켓피씨라는 제품군에 눈길이 가기 시작했다. 우리는 그것을 포켓피씨 또는 PDA 폰이라고 불렀다.
[Windows Phone7] mini Browser Sample 분석
Windows Phone 7 코드 샘플 4가지를 분석해 보는 시간을 갖도록 하겠습니다. 총 4가지의 샘플을 분석하는
[Windows Phone 7] 윈도우 폰 7 개발 Getting Started
# 남극의 쉐프 ( The Chef Of South Polar, 2009 )
남극의 쉐프. 말만 들어도 약간 흥미가 가는 영화다. 최근에 광화문쪽에 [라퀴진](http://ash84.tistory.
[C#] GPS NEMA Protocol 자료
[Microsoft.Ink] ISF(Ink Serialization Format)에 관한 자료
[](http://ash84.net/wp-content/uploads/1/cfile28.uf.18411F124B9EE055055250.pdf)cfile28.uf.18411F124B9EE055055250.pdf
# 화이트데이 'la cuisine'을 다녀오다.
화이트데이(White Day)는 남자가 여성분에게 사탕을 주는 날이라고들 하는데, 요즘은 사탕말고 초콜렛이나 작은 선물을 주는 날이라고 사람들이 많이 인식하는것 같습니다. 애인이 있
# 포스팅할 시간이 없이 바쁜 나날들.
포스팅 할 시간이 없이 바쁜 나날들입니다. ㅠ 아이폰 Todo를 통해서 생각날때마다 포스팅 제목을 써 놓고 메모를 해두지만, 정작 언제 포스팅할지에 대한 Due Date는 정할수가 없군요. 에휴. </
# 회사 이사
[C#] Hippo Chart 사용하기
.NET Compact Framework Sample: P/Invoke Library
.NET Compact Framework Sample: P/In
# 가끔 그런 꿈을 꾼적이 있다.
가끔 그런 꿈을 꾼적이 있다. 특히, 홍대에 있는 제너럴 닥터에 갔을때 그 공간(Space)이
[C#] ScrollToCaret 를 이용한 TextBox 자동 스크롤링
TextBox는 본래, 사용자의 데이터 입력을 받아 들이는 기능을 주로 하지만, 때때로 데이터를 보기위해서 쓰이기도 합니다. 특히, 저는 시리얼 포트를 통해서 들어오는 데이터를 한눈에 보기 위해서 자주 사용하는데요
내가 사랑하는 샴페인 #2 - 돔페리뇽(Dom Perignon)
![](http://ash84.net/wp-content/uploads/1/cfile25.uf.153F470D4B7C8D265ECACC.jpg)
[Book] 에드워드권 - 일곱개의 별을 요리하다.
원체 먹는 것에 관심이 많은터라, 요리사에도 점점 관심이 가던차에 에드워드 권이라는 분에 대해서 알게 되었습니다. 백지영의 피플 인사이드(people inside)를 우연히 보면서 더 관심이 가게 되던중, 그가 쓴 자서전 격의 책.
응용프로그램은 혼자 돌아가지 않는다.
개발을 하다보면 이런저런 일이 많이 생기겠지만, 제가 겪은 일 중에 가장 황당한 일은 하드웨어와 연동된 응용프로그램을 개발하면서 겪은일이었습니다.
[Book] 스타카토 라디오
지난주 텐바이텐을(10×10)을 통해서 응모했던 책 이벤트가 당첨이 되면서 스타카토 라디오라는 책을 받아 볼수 있었습니다. 스타카토라는 말은 피아노를 칠때 끊어치는 것을 말하는데, 라디오와 결합되어서 저에게 흥미를 유발시
[C#]매틀랩과 닷넷 C# 연결하기(Connect Matlab to .NET C#)
매틀랩과 C 혹은 C++ 과 연결하는 방법에 대해서 이미 다른 블로거 분들이 올렸는데, 실질적으로 .NET 라이브러리화되어서 연동시켜서 매틀랩의 함수들을 사용하는 방식에 대해서는 안 나와 있어서 이렇게 올리게 되었습니다. 일단. 아래의 링크에 가셔서 기본적인 절차를 숙지 하셔
SBS 스폐셜 '출세만세'에 대한 나의 감상기
SBS 스폐셜 ‘출세만세’를 봤다. 처음부터 본것은 아니고, 4회에 대한 예고를 보다가 1회부터 봐야 겠구나 라는 생각이 들어서 보게 되었다. 출세란 무엇이고, 현대와 과거의 출세에 대해서 분석하고 보여주는 프로라서 그런지 직장인인 나로서는 당연히 끌릴수 밖에 없었다.
아이폰에서 불편한 것들(iPhone's disadvantages)
아이폰을 구입한지도 어언 3주정도 됐네요. 순정상태에서 쓰다가 이제는 해킹을 해서 사용하고 있습니다. 아이폰은 기존의 폰 보다 분명히 혁신적이고 보다 유저에게 친숙하고 친절한 폰입니다(굳이 스마트 폰이라는 말은 붙이지 않겠습니다)![](http://ash84.net/wp-content/uploads/1/
# 소소한 아침.
![](http://ash84.net/wp-content/uploads/1/cfile9.uf.1152A1194B5FF65A359ED0.jpg)
# 테이크 어반(Take Urban)에서.
![](http://ash84.net/wp-content/uploads/1/cfile24.uf.197B32224B60FC5C12937B.jpg)![](http://ash84.net/wp-content/uploads/1/cfile7.uf.117B32224B60FC5D13ABC6.jpg)
# 이런주방을 갖고 싶다
![](http://ash84.net/wp-content/uploads/1/cfile8.uf.1851EE0B4B5E5AAC5FFF4B)
[C#] CSS 분석은 이제 내게 맡겨라. Bonesoft.CSS.dll
***
[C#] 스레드를 사용하는 2가지 방법
프로세스와 스레드에 대한 개념은 어떤 프로그래밍 언어라 하더라두 공통으로 적용이 되는 부분입니다. C#에서 스레드를 사용하는 방식은 파라미터(Parameter)가 있냐 없냐에 따라서 달라집니다.
[Microsoft Ink] InkOveray 위에서 커서모양 바꾸기
필자는 요즘 회사에서 Microsoft Ink 관련 Applicat
[아이폰 App 추천] 코딩할때, 음악듣기 좋은 어플. moodAgent
원래 다른 블로그들 보면서, 뭘 그리 어플들을 추천하나, 자기가 좋아서 쓰면 그만이지라는 주의 였는데, 저도 여러 어플을 쓰면서 다른 분들께 (혹시 모르는 분들이 있을까바서 ㅋㅋ) 추천해 주고 싶은 마음이 있어서 이렇게 적
[C#] 기본 메일 클라이언트 열기
<
아이폰 UI 디자인 파워포인트
회사 책상
![](http://ash84.net/wp-content/uploads/1/cfile1.uf.153B6D0D4B4C3D44494452)
아이폰 UI 스케치 이미지
[](http://ash84.net/wp-content/uploads/1/cfile24.uf.173BB8034B4D00551E21A2.pdf)cfile24.uf.173BB8034B4D00551E21A2.pdf아이폰 UI 스케치 이미지 입니다.
뮤지컬 웨딩싱어

차분하게 프로그래밍 하라.
대학원에 있을때나, 혹은 회사를 다니면서 느낀것 중 하나는 프로그래머가 아닌 사람들은 결과에
...
![](http://ash84.net/wp-content/uploads/1/cfile23.uf.17029F0E4B426599165672.jpg)
독일의 한 모텔에서.
![](http://ash84.net/wp-content/uploads/1/cfile3.uf.1541500B4B4263A2390B53.jpg)
오늘의 생각
구글 안드로이드 폰 - 넥서스원 관련 동영상(nexus one)
구글에서 만든 안드로이드폰(일명)인 넥서스 원(Nexus One)에 관한 동영상입니다.
[WINCE 6.0] 화면 전환 ScreenOrientation 열거형(enum)
**ScreenOrientation 열거형(enum)**
2009/
2009년 한해 나에겐 무슨일이?
2009년 한해 무슨일이 나에게 있었을까 하는 의문이 들었습니다. 그래서 한해를 곰곰히 되돌아 보는 시간을 스스로 한 3일 정도 갖게 되었습니다.
선덕여왕 - 계림의 연인
바야흐로, 원 컨텐츠 멀티 어플 시대(One Contents, Multi-App), 미친듯이 기획하라!!

삼성 모바일 플랫폼 바다(bada) 관련 영상
**Samsung bada OS Presentation
안드로이드 교육 소감
**
[C#] 가상 키(Key) 이벤트 보내기
[
오늘은 저의 생일입니다.
[![Yes! It's My Birthday! And It's My Footprint :D](http://farm1.static.flickr.com/178/475538963_dd18b35636.jpg)](http://www.flickr.com/photos/44124425616@N01/475538963 "Yes! It's My Birthday! And It's My Footprint :D")
2010년 당신의 Motto는 무엇입니까?
**
[C#] Winform(윈폼) 제목표시줄에 안뜨게 하기
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.134855014B0BEAB21F9F39.jpg)Form1과 Form
이태원에서..
10월의 어느 주말.
프로그래머를 위한 까페는 없는걸까?
바야흐로 까페 전성시대다. 스타벅스에서 시작한 우리나라의 까페 문화는 이제는 골목골목마다 커피와 와플을 파는 까페로 가득 차 버렸다. 단순히 음료와 음식을 파는 까페는 이제는 무선인터넷을 지원해주고, 공부할수
내가 사랑하는 샴페인 #1 - 모엣샹동 브륏 임페리얼(Moet Chandon Brut Imperial)
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.1339DB0B4B0603DD3287B9.jpg)
[C#] Serial Port 구분하기.
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.1460001B4B0654F75990D2.PNG)
베를린 시내
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.11784F174AFF64BC83CD9D.JPG)![](http://ash84.net/wp-content/uploads/1/cfile24.uf.13784F174AFF64BD84B1CB.JPG)
테터데스크 첫화면 글자 오류 문제
블로그 첫 화면에 테터데스크 적용했는데, 문제가 생겼습니다.
독일의 식당
![](http://ash84.net/wp-content/uploads/1/cfile22.uf.2051871A4B0697687AF81E.JPG)
다이하쓰 코펜 시승 동영상
베를린 브란덴부르크문
![](http://ash84.net/wp-content/uploads/1/cfile30.uf.205E13194AFF633A8C798D.JPG)![](http://ash84.net/wp-content/uploads/1/cfile21.uf.115E13194AFF633A8DD528.JPG)![](http://ash84.net/wp-content/uploads/1/cfile24.uf.135E13194AFF633B8EB890.JPG)![](http://ash84.net/wp-content/uploads/1/cfile4.uf.155E131
베를린 시내
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.115EE1194AFF61ED47E01C.JPG)
Google 스트리트뷰 카를 보다!!
프로그래머에게 좋은 눈 지압 운동
손과 눈만 쓰는 우리 프로그래머들.  그래서 손과 눈, 뇌만 살아 있어도 프로그래밍이 가능할것 같은데.. 그러기에 더 소중히 다뤄줘야 하지 않을까요? 저는 그래서 최근에 살을 빼는것도 있지만, 눈지압운동을 자주 해주고 있습니다. 여러분의 눈을 소중히
베를린 대성당
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.1256120D4AFF5EE052CC93.JPG)
베를린 장벽
![](http://ash84.net/wp-content/uploads/1/cfile23.uf.1362E50F4AFF5DD74AF3F9.JPG)![](http://ash84.net/wp-content/uploads/1/cfile26.uf.1462E50F4AFF5DD74BC93B.JPG)![](http://ash84.net/wp-content/uploads/1/cfile26.uf.1662E50F4AFF5DD84CEC3C.JPG)![](http://ash84.net/wp-content/uploads/1/cfile9.uf.1762E50
베를린 카이저빌헬름 기념 교회
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.11630A0F4AFF5B735E6084.JPG)
다이하쓰 코펜 변신
플랫폼
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.160C6D054AFE0B6E448199.JPG)
[Book] 스키니 비치(Skinny Bitch)
프랑크 프루트역 앞
![](http://ash84.net/wp-content/uploads/1/cfile6.uf.12787F034AFE089032BDED.JPG)
표지판
![](http://ash84.net/wp-content/uploads/1/cfile25.uf.157623044AFE0A5F426A10.JPG)
창밖의 프랑크푸르트시내
![](http://ash84.net/wp-content/uploads/1/cfile23.uf.167802034AFE09DD4DBFDB.JPG)
독일 초고속 열차
![](http://ash84.net/wp-content/uploads/1/cfile25.uf.1578A4014AFE080EA95775.JPG)
프랑크푸르트
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.160BF2054AFE095D4B63D5.JPG)
즐비한 술들.
![](http://ash84.net/wp-content/uploads/1/cfile8.uf.130BBC054AFE0AD57E7F9B.JPG)
[뮤지컬] 영웅 - 안중근 그를 기억하라.
![](http://ash84.net/wp-content/uploads/1/cfile6.uf.18544C044AFCAF2E4586B4.jpg)
프랑크푸르트
![](http://ash84.net/wp-content/uploads/1/cfile5.uf.1464F60F4AFAD2BE95364C.JPG)
독일의 한 모텔
![](http://ash84.net/wp-content/uploads/1/cfile5.uf.1474960F4AFAD09D5390D9.JPG)
독일의 공항
![](http://ash84.net/wp-content/uploads/1/cfile27.uf.1661270B4AFACFAC797CF4.jpg)
독일의 한 지방에서
![](http://ash84.net/wp-content/uploads/1/cfile27.uf.1106D60E4AFACD84A10925.jpg)
프랑크 푸르트역 시계
![](http://ash84.net/wp-content/uploads/1/cfile22.uf.1449DF0C4AFAD51375801E.JPG)
[C#] DotNetBar 이용하기
Office 2007 부터 리본시스템이 UI에 도입되면서 UX의 개념이 나오기 시작한것 같다. 자주 사용하는 메뉴를 사용자가 보편적으로 자주 사용하는 곳에 배치함으로써 좀더 사용성을 증가 시킨다는 것은 사람과 컴퓨터 사이를 좀더 가깝게 만들어 주는 하나의 혁신이라고 볼수가 있다. 하지만, 일반 Visual Studio 2008의 Windows Applicatio
바이블로그? 바이블로그! 블로그 마케팅 + 바이럴 마케팅
**
사고 싶은 차가 생겼다.!! 다이하쓰 코펜
![](http://ash84.net/wp-content/uploads/1/cfile27.uf.1679BA124AF7C77B02DA19.jpg)
[프로그래밍 일반]성급한 일반화의 오류
[![Day 308: X](http://farm3.static.flickr.com/2537/4076648343_767c69a46e.jpg)](http://www.flickr.com/photos/91252560@N00/4076648343 "Day 308: X")
국화 꽃 향기
![](http://ash84.net/wp-content/uploads/1/cfile28.uf.1259921C4AF56E8C9A9FA2.jpg)
당신과 함께한 하늘
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.164F330C4AF5650B814E95.jpg)
[Book] 꼴찌를 일등으로 - 김성근 -

오늘, 1등이 아닌 2등의 당신을 기억하겠습니다.
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.1455A3284AE392CC563174.jpg)
...
모두가 꿈이 있었겠지라는
다시 시작하기
![](http://ash84.net/wp-content/uploads/1/cfile26.uf.122A892B4ADD0A69138198)
당신이 좋아요.
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.193656144ACD96CD65B72F.JPG)
꿈을 가져야.
[![[A5 B8] I](http://farm3.static.flickr.com/2401/2274188347_727a20c0b3.jpg)](http://www.flickr.com/photos/74347725@N00/2274188347 "[A5 B8] I")
색깔 종이테이프
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.132B120B4AC80EC35AD13C.JPG)
...
[![Pali watch the sky](http://farm1.static.flickr.com/227/520691712_7adf22cfd8.jpg)](http://www.flickr.com/photos/14127431@N00/520691712 "Pali watch the sky")
[C#] Image들을 PDF로 저장하기
**
SK와이번즈를 좋아하는 이유.
야구를 좋아하기 시작한지 얼마 되지 않았지만
...
[![It's no Joke](http://farm3.static.flickr.com/2424/3927981543_8cc7110be5.jpg)](http://www.flickr.com/photos/92163630@N00/3927981543 "It's no Joke")
KakaAhn의 미투데이 - 2009년 9월 21일
- 월요일 부터 야근의 징후가.. ㄷㄷㄷ(자기소개 20대 직장인 회사 야근)[2009-09-21 17:32:14](http://me2day.net/ash84/2009/09/21#17:32:14 "퍼머링크")
KakaAhn의 미투데이 - 2009년 9월 21일
- 아우, 조기출근으로 힘듦. ㅠ 오늘은 비가와서 그런지 사무실이 울적하네요^^(자기소개, 출근, 2030, 직장인 회사)[2009-09-21 09:12:43](http://me2day.net/ash84/2009/09/21#09:12:43 "퍼머링크")
KakaAhn의 미투데이 - 2009년 9월 17일
- 동생이 내일이면, 다시 지방에 있는 학교로 개강해서 내려가는데 먹을거 하나 사가지고 들어가고 싶은데 모가 좋을까요?(자기소개 선물 동생)[2009-08-31 19:27:19](http://me2day.net/ash84/2009/08/31#19:27:19 "퍼머링크")
[서래마을] 샤이바나
서래마을에 있는 샤이바나(Shy Bana)
[서래마을] 파리 크로와상
![](http://ash84.net/wp-content/uploads/1/cfile27.uf.165BA80E4AA1E170464A0B.JPG)![](http://ash84.net/wp-content/uploads/1/cfile2.uf.165BA80E4AA1E17947A8D7.JPG)
[서래마을] 아프레미디 - 녹차빙수
![](http://ash84.net/wp-content/uploads/1/cfile28.uf.1960F10E4AA1DC258740A8.jpg)
[서래마을] 아프레미디 - 이모저모
![](http://ash84.net/wp-content/uploads/1/cfile2.uf.1759C00E4AA1DDA88246AF.JPG)
[서래마을] 아프레미디
![](http://ash84.net/wp-content/uploads/1/cfile6.uf.205CBA0E4AA1D9BA8D29A7.JPG)
[남산] 나오스노바 - 솜사탕 팥빙수
![](http://ash84.net/wp-content/uploads/1/cfile25.uf.17624F0E4AA1D3333F0482.JPG)
[남산] 나오스노바
여자친구 생일에 남산에 있는 **나오스노바**에서 샴페인을 한잔 했다. Moet&Chandon Brut Imperial N.V
[삼청동] 모자모자모자
![](http://ash84.net/wp-content/uploads/1/cfile1.uf.147E1C0B4AA1CEEF7D38DD.JPG)
[삼청동] 일본 라면집??
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.1504BE0B4AA1C9AE3708BC.JPG)
[삼청동] 삼청동 골목
![](http://ash84.net/wp-content/uploads/1/cfile2.uf.156D990D4AA1C80A2A4872.JPG)
바나나 우유 - 소녀시대 수영 사인 ^^
![](http://ash84.net/wp-content/uploads/1/cfile29.uf.1661B90E4A9C97C44D1669.jpg)
최고의 Scraper를 꿈꾼다. EverNote

파티는 끝났다.
[![Day One Hundred Twenty Nine](http://farm4.static.flickr.com/3586/3517939540_350c166132.jpg)](http://www.flickr.com/photos/38687875@N00/3517939540 "Day One Hundred Twenty Nine")
[홍대] 돈부리
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.2034271C4A82B0376DAA60.JPG)
[참치집] 함동
![](http://ash84.net/wp-content/uploads/1/cfile22.uf.167EC00C4A82AF49717CC2.jpg)
[잠실] LG : 두산 경기 응호와 함동
![](http://ash84.net/wp-content/uploads/1/cfile24.uf.1862E30B4A82AD47286E8B.jpg)
[참치집] 응호
![](http://ash84.net/wp-content/uploads/1/cfile2.uf.1679D90F4A82AECC7674D1.JPG)
[홍대] TomnToms는 특별하다?
![](http://ash84.net/wp-content/uploads/1/cfile22.uf.2077E30F4A82AA906E520A.JPG)
[상암] 월드컵 경기장
![](http://ash84.net/wp-content/uploads/1/cfile3.uf.1912430D4A82AC1B402ECA.jpg)
[맨유내한] 나, 경기봤어요~
![](http://ash84.net/wp-content/uploads/1/cfile2.uf.166A400B4A82ACA044F873.jpg)
Google Book Search Service
Google Book Search Service
[홍대] 베개?
![](http://ash84.net/wp-content/uploads/1/cfile25.uf.1959350E4A82A8967C8CE3.jpg)
[홍대] 디스플레이
![](http://ash84.net/wp-content/uploads/1/cfile3.uf.157F820F4A82A96958B509.jpg)
수선화에게 - 정호승 -
**수선화에게**
[삼청동] 고양이들
![](http://ash84.net/wp-content/uploads/1/cfile24.uf.121A360B4A7CE6B8F6516D.jpg)
[삼청동] 아이스크림
![](http://ash84.net/wp-content/uploads/1/cfile3.uf.110F690F4A7CE43A01772A.jpg)
[삼청동] 골목
![](http://ash84.net/wp-content/uploads/1/cfile21.uf.137AC9104A7CE5D8A3B627.jpg)
[삼청동] 고건물
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.1152E80C4A7CE378D113B6.jpg) 꽤 오래전에 찍은 사진.
여자가 필요해?
[![Do You Have Tinymeat In YOUR Pants?????](http://farm3.static.flickr.com/2231/1554478480_b6135a41b9.jpg)](http://www.flickr.com/photos/96545801@N00/1554478480 "Do You Have Tinymeat In
스킨 변경후, 블로그 속도 측정
![](http://ash84.net/wp-content/uploads/1/cfile24.uf.1157090E4A7D0887721697.jpg)스킨 변경후, 블로그 속도를 측정해 보았다.
[Book] 행복한 마이너 - 황의건 -
[홍대나들이] 에뚜와
위치
27일의 끄적끄적
[![Hipster Moleskine at rest](http://farm1.static.flickr.com/88/278674802_47c1d3ce23.jpg)](http://www.flickr.com/photos/51035715190@N01/278674802 "Hipster Moleskine at rest")
[도곡동] 부첼라
![](http://ash84.net/wp-content/uploads/1/cfile5.uf.167F100D4A67C23FB97B74.jpg)
...
[![What Can We Do With Flickr?](http://farm1.static.flickr.com/85/265279980_c2fb866a56.jpg)](http://www.flickr.com/photos/37996646802@N01/265279980 "What Can We Do With Flickr?")
헬스케어 서비스 채널의 다양화
[![What's in my bag](http://farm4.static.flickr.com/3006/3069228203_0c89e6673d.jpg)](http://www.flickr.com/photos/42256496@N00/3069228203 "What's in my bag")
취업과 시대정신
![](http://ash84.net/wp-content/uploads/1/cfile5.uf.204A480B4A1E4642747583.PNG)미티(출처 - 다음만화)면접 본후, 2주가 지났고 출근하라는 메일을 받게 되었다. 뛸듯이 끼뻤다.
2009 u-Health Global 서밋
![](http://ash84.net/wp-content/uploads/1/cfile3.uf.1952C80C4A1B44FD52C0E5.jpg)
2009 대한의료정보학회 춘계학술대회
대한의료정보학회 춘계학술대회가 6월 19일 삼성서울병원에서 열립니다.
Fun(재미)가 있는 서비스가 성공한다.
논문을 읽거나 학회에 가서 다양한 헬스케어 서비스에 대한 소개를 보면 한결같이 느끼는 것은 재미가 없다는 것이다. 어떤 통신망을 써서 , 누구에게 데이터를 전송하고, 사용자가 어떤 피드백을 어떻게 받아서 좋을것이다 라고만 서술되어 있을뿐 그들을 어떻게 끌어들이
상상만은 유럽의 한 까페에..
[![A la terrasse du café](http://farm1.static.flickr.com/106/309662133_fadf37f064.jpg)](http://www.flickr.com/photos/40869403@N00/309662133 "A la terrasse du café")
모바일 어플리케이션으로 돈 벌고 싶다면?! SKT 모바일 컨텐츠 오픈마켓
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.1128D20E4A0E032E3B07D7.jpg)
MSDN 주간 세미나 시리즈 - I am Developer
![](http://ash84.net/wp-content/uploads/1/cfile4.uf.2024A9104A0BB5838A20E3.jpg)
User Interface 그리기 좋은 툴 - Balsamiq Mockups
작업 초기에 유저인터페이스를 먼저 개발하고 그에 대해서 고객과 UI 에 대해서 이야기를 해야하는 경우가 많다. 물론 VS2008 롤 각종 컨트롤을 가져다가 구성하는 것이 어려운 일은 아니지만, 고객과의 상담결과가 늘 그렇듯 내가 만든 UI를 많이 바뀌게 만든다. 그래서 어차피 고쳐야 하기 때문에 사실상 실제 컨트롤을 구현한 화면을 가지고 미팅을 한다는건 상당히 귀찮은 일이다.(안귀찮을지도 모르지만.)
서비스와 논문사이.
논문거리냐, 서비스거리냐
곧 졸업.
[![Graduation Cake Guy](http://farm1.static.flickr.com/47/143186839_5c9fad13cd.jpg)](http://www.flickr.com/photos/15923063@N00/143186839 "Graduation Cake Guy")
사는게 힘드네.
[![2 Parole 5 Lettere](http://farm3.static.flickr.com/2384/2195276010_585584fc4e.jpg)](http://www.flickr.com/photos/52494613@N00/2195276010 "2 Parole 5 Lettere")
용기가 필요한 때.
[![uae brazil](http://farm1.static.flickr.com/27/62604509_fdc384dcea.jpg)](http://www.flickr.com/photos/60635032@N00/62604509 "uae brazil")
영화나 음악, 시, 소설이 존재하는 이유.
[![summer soundtrack](http://farm1.static.flickr.com/60/170218920_7ae2f8d310.jpg)](http://www.flickr.com/photos/10756861@N00/170218920 "summer soundtrack")
2008 TOMNIA 소프트웨어 경진대회 출품작 Your Health
[](http://ash84.net/wp-content/uploads/1/cfile5.uf.1566E70C49B63C7F2AFDC3.bmp)cfile5.uf.1566E70C49B63C7F2AFDC3.bmp
피드백(Feedback) 의 시대
![](http://ash84.net/wp-content/uploads/1/49a36eb4a030fD0.jpg)
자취 생활 2일쨰.
[![Grundvik main house](http://farm1.static.flickr.com/57/214317898_596c96ecb6.jpg)](http://www.flickr.com/photos/62223880@N00/214317898 "Grundvik main house")
2009 발렌타인데이
발렌타인데이가 어김없이 다가온 2월.
더이상..프로그래밍이 즐겁지 않은이유는.
더이상.. 프로그래밍이 즐겁지 않은 이유는 왜일까..?
한국 마이크로소프트 20주년.
![](http://ash84.net/wp-content/uploads/1/49767c5c01fbdDX.jpg)
가끔 그런생각을 해본다.
가끔 그런 생각을 해본다.
[C#] 네이버 지역검색 오픈 API 검색결과 <b> 태그제거
네이버 지역검색 오픈 API를 사용해서 검색한 결과는 RSS로 볼수도 있지만,  XML의 형식으로 볼수도 있다. 특히 안에 있는 부분이 그러하다.
2008/
Aspire
대학교 처음 들어와서, 영어 공부를 할때, 우연히
믹시
믹시 인증 :Lb4E7iZiO7eUC5myBDeto6hi+ePgJpnXz7JYzsvbx00=
Thesis : 성형외과 의원의 웹 방문자 수에 영향을 미치는 웹 사이트 속성
![](http://ash84.net/wp-content/uploads/1/4956256245f3dA0.JPG)
Thesis:Design Extensible Home Healthcare System based on Personal Mobile Gateway
...
2008 년이 얼마 남지 않았다는 사실에 조금은 당황 스럽기도 하고..
[TOMNIA 소프트웨어 경진대회] 삼성전자 TOMNIA 각종 API
TOMNIA 폰에서 GPS, 카메라 API에 대한 설명이 있는 API 자료
Thesis : Design Extensible Home Healthcare System using a Smart Phone
[C#] Bluetooth Communication in Black Jack phone(블랙잭에서 블루투스 이용)
블랙잭 폰에서(블랙잭 1) 블루투스를 이용한 프로그램 개발.
[C#] ECG Realtime Display(심전도 실시간 전송)
ECG Realtime Display는 윈도우 폼과 그리고 웹에서 가능하다. 그러나 본 포스팅에서는 윈도우 폼에서 디스플레이 하는 부분에 대해서만 다루도록 하겠다. 왜냐하면, 디스플레이하는 방식은 똑같기 때문에 웹 상에 실시간 디스플레이 할수 있는 기술(실버라이트, 스마트 폼)을 이용해서 구성하면 웹 상에서도 디스플레이를 할 수가 있다. 본 포
학술 블로그로의 전환
[![Day 106 - I am a librarian](http://farm1.static.flickr.com/134/352573802_
모바일 게이트웨이에서의 생체 신호 디스플레이에 대한 고찰.
약 한달간 개발해 오고 있는 모바일 게이트웨이에 대해서 오늘 랩 미팅시간에 많은 이야기가 오고 갔다.
IT Innovation Conference 2008
![](http://img.etnews.co.kr/Et_2008/newsletter/081029_ebiz/1127_top.jpg)
2008 EHR 핵심공통기술 심포지움
**2008 EHR 핵심공통기술 심포지움
uHealthcare2008 in Busan
uHealthcare 2008 을
부산.uHealthcare 2008 잘 다녀오겠습니다.
몇일간의 끙끙새면서 만든 피피티와 그리고 영어 스크립트를 가지고
Mobile Platform
블랙잭 프로그래밍 중.
대학원 오기를 후회한 적 몇번.
그렇게 바라고 바라던, 대학원 이라는 곳을 돈과 시간을 들여 왔지만, 참 많은 후회를 하게 되는것 같다.
[C#] INI 파일 대신에 XML 로 설정값 저장/유지 하기
INI 파일이나, 일반적인 파일로 프로그램의 설정값을 유지및 관리 해 오는 일은 예전부터 많았다. 하지만, 필자가 느끼기엔 여간 불편한일이 아니였다. 그래서 여러 검색창을 돌아다디던중 XML과 Hashtable을 가지고 설정을 관리하는 방법을 알아냈다. 특히, 필자의 경우 시리얼 통신을 통해서 여타의 의료기기간의 인터페이스 연결을 해야하는 경우가
2008 uHealthcare oct 29 - 31, Busan
![](http://ash84.net/wp-content/uploads/1/48eb30debaa676H.JPG)
2008 대한의료정보학회 추계학술대회
![](http://ash84.net/wp-content/uploads/1/48ea25b30cab42C.jpg)
HL7 Schema List
![](http://ash84.net/wp-content/uploads/1/48e3a0461d08887.png)
아이폰 모바일 헬스케어 (iPhone mobile Healthcare)
A Mobile Care System with alert mechanism
[](http://ash84.net/wp-content/uploads/1/48e0707f8ebe97H.pdf)48e0707f8ebe97H.pdf
[Universal Domain] HL7 Common Observation
Bluetooth sensors for wireless home and hospital healthcare monitoring
[](http://ash84.net/wp-content/uploads/1/48d8566ad8b188U.pdf)48d8566ad8b188U.pdf
헬스케어 산업, 언제까지 시범 사업인가?
[](http://ash84.net/wp-content/uploads/1/48d7b4dad941e6J.bmp)48d7b4dad941e6J.bmpFROM LG CNS
[C#] HL7 Validation 시, 주의점.
HL7 Validation 시 주의점, 대부분의 XML의 Validation은 별 문제가 없었지만, HL7 같은 경우는 다음과 같은 예외가 발생했다.
XML Schema Validation Check
Intel의 BIOMOBIUS 와 SHIMMER
다수의 많은 IT 기업들이 헬스케어 산업에 뛰어 들고 있다는 것은 자명한 사실이다. 기존의 거대한 의료기기 업체인 GE, 지멘스, 필립스 등의 업체는 기존의 기기를 바탕으로 헬스케어분야를 공략하려고 하고 있고, 마이크로소프트의 경우에는 개인을 대상으로 HealthVault 서비스를 발표함으로써, PHR 분야에서의 공략을 시작해 나가고 있다. 또한 구글이나 다른 인
[펌] 인텔, 향후 미래 프로젝트 및 컴퓨팅 전망 발표
**인텔, 향후 미래 프로젝트 및 컴퓨팅 전망 발표**
[펌] MS-SQL : 저장 프로시저 만들기
출처 : [http://cafe.naver.com/hackertime/397](http://cafe.naver.com/hackertime/397)
[펌] 웹서비스 비동기 호출
웹 서비스의 비동기 호출 방법에 대해 정리한 글입니
[펌] Smart Client 웹에 embedded 하는 부분.
[.NET] 웹서비스 등록시 HTTP 404 에러
C# 으로 만든 웹서비스를 서버에 등록해서 테스트 해야 하는 경우가 많은데
2007/
IT 기술과 현실에 대한 고찰.
[![Big pockets](http://farm2.static.flickr.com/1329/822246089_a7fb5b0bf5.jpg)](http://www.flickr.com/photos/73491156@N00/822246089 "Big pockets")
2007 대한의료정보학회 창립 20주년 추계학술대회 후기
![사용자 삽입 이미지](http://ash84.net/wp-content/uploads/1/gl158.JPG)
2007 대한의료정보학회 창립 20주년 기념 추계학술대회
**2007 대한의료정보학회 창립 20주년 기념 추계학술대회**
아시아-태평양 관광투자 컨퍼러스&박람회 - 의료관광
11월 1, 2, 3일 코엑스 대서양 관에서 아시아-태평양 관광투자 컨퍼런스&박람회가 문화관광부 주관으로 열렸다. 여러 업체 보다는 다양한 지자체가 나와서 자신의 고향이나 지역의 특산물이나 지역적 위치를
WPF example - CONTOSO Healthcare System
![사용자 삽입 이미지](http://ash84.net/wp-content/uploads/1/gl138.png)
아학. 머리가 좋아지는 코딩?
[![Hello World](http://farm1.static.flickr.com/125/359320246_ddad1ceef1.jpg)](http://www.flickr.com/photos/55835038@N00/359320246 "Hello World")
[메디게이트] 이지케어텍, 의료컨설팅 사업 진출
이지케어텍, 의료컨설팅 사업 진출
[아주대 병원] 제 2회 국산 의료기기 사용 활성화 심포지엄
![](http://redesign.co.kr/mail2_upload/board/96_.jpg)
System.Configuration.Install
******System.Configuration.Install ?**
Windows Service
Windows Service
About Attribute?
**About Attribute ?**
[메디게이트]비트-인성, U-헬스케어 포괄 업무제휴
비트-인성, U-헬스케어 포괄 업무제휴
[메디게이트]이지케어텍, MS 솔루션 파트너 '선정
이지케어텍, MS 솔루션 파트너 ‘선정’
[메디게이트]GE헬스케어, EMR R&D 센터 설립
GE헬스케어, EMR R&D 센터 설립
MDIR을 아는가?(프로그램첨부)
[](http://ash84.net/wp-content/uploads/1/gl119.zip)gl119.zip
프로그래밍과 수학
C#을 공부한지도 한 2개월 정도 되어 가는 것 같다. 문법적인 부분에 대해서 익히는건, 오래 걸리지 않았다. (원래, C/C++,JAVA를 해봐서). 대신 오래 걸렸던 것은 C#의 여러기능을 잘 이용해서 프로그래밍 하는 것이었다. 자꾸만 주먹구구식의 C++하던 식으로 해서 그런지, 적절한 C
[C#] System.Collections.Queue
[C#] System.Collections.Stack
[C#] .NET 어셈블리1
COM 바이너리의 문제점
2007 대한의료정보학회 추계학술대회 및 20주년 기념 행사
**
계산기 소스 알고리즘 V 0.9
계산기 프로그램은 어찌보면, 매우 간단하다고 생각 할수 있다. 그건, 기능 자체를 간단하다고 간주해 버리면 간단해 진다. 즉, 두수에 대한 사칙연산 만을 지원하는 경우에는 매우 간단하며, 정말 기초적인 부분(함수)으로 구현할수 있다.(물론 한 함수에 통으로 짤 수도 있다.)
PHI(personal health information) 국제 워크숍
![사용자 삽입 이미지](http://ash84.net/wp-content/uploads/1/gl104.JPG)
2007 대한의료정보학회 춘계학술대회
**
헬스케어 산업, 새로 부각되는 것인가?
![사용자 삽입 이미지](http://ash84.net/wp-content/uploads/1/fk64.jpg) 인텔에서 헬스케어 PC를 만들었다는 소식을 접했다. 교수님을 통해서 였지만, 실제 네이버 뉴스에서 이 기사와 그림을 봤을때는 인텔에서 이정도로 헬스케어 산업에 관심을 가지고 있는 줄은 몰랐다. 단지 하나의 타블렛 단말기로 보기보다는 헬스케어 산업의 부흥으로 봐야 하지 않을까 싶다. 실제로 우리나라에서도 U
MEDC2007을 다녀와서
**Microsoft Mobile & Embedded DevCon 2007
왜 학교에서는 분석과 설계에 대해서 가르쳐 주지 않는가?
[![The locker misery](http://farm1.static.flickr.com/227/513100970_057043f204.jpg)](http://www.flickr.com/photos/33685308@N00/513100970 "The locker misery")
U-Healthcare 심포지엄
U-Healthcare 심포지엄
교수님이 주신 비전에 대한 나의 생각
저저번주, 첫 랩미팅을 가졌다.
송도 외국병원 유치와 기회
<메디게이트>
제 23회 국제 의료기기 및 의료정보 전시회 KIMES 가자~
**KIMES**
의료정보학의 거장 - Dr. Edward H. Shortliffe
![사용자 삽입 이미지](http://ash84.net/wp-content/uploads/1/fk15.jpg)
To introduce 의료정보학(Medical informatics) And 발전방향
**[](http://ash84.net/wp-content/uploads/1/gk8.bmp)gk8.bmp**
의료 정보학을 공부하기 위해서
미국대학의 의료정보 관련 학과에서 가르치는 주요 분야를
programmer or researcher
**![사용자 삽입 이미지](http://ash84.net/wp-content/uploads/1/fk2.jpg)
의공학에 대한 나의 답변
전 이번에 의공학부를 졸업하는 학생입니다.
해외 의료정보학의 교육현황 - 미국과 유럽을 중심으로
경북대학교 의과대학 의료정보학교실 조 훈 교수 (학회 국제협력이사)
프로그래밍 설계와 디자인에 대한 글
[](http://ash84.net/wp-content/uploads/1/gk1.pdf)gk1.pdf
~/contents · 970 posts · since 2007 zvc · GitHub Pages © 2007–2026