양성 피드백 고리에 빠지고 있다.

|

TDD 책을 오랜만에 다시 꺼내서 보니, "양성 피드백 고리"라는 단어가 눈에 들어온다.


책에서 언급된 내용은 테스트와 관련된 내용인데, 인용해 보자면


"스트레스를 많이 받으면 테스트를 점점 더 뜸하게 한다. 테스트를 뜸하게 하면 당신이 만드는 에러는 점점 많아질 것이다. 에러가 많아지면 더 많은 스트레스를 받게 된다."


테스트 하나를 하지 않았을 뿐인데, 굉장한 스트레스가 발생해서 완전히 망해버릴지도 모르는 비약적인 상상이 가능하다. 하지만 일면 이해가 되는 부분은 경험이 쌓여가면 갈 수록 해야 할 일에 대한 목록이 증가하고, 할일의 목록이 많아지면 일의 집중도와 성취도는 낮아진다는 것이다.(경험이 쌓이면 초보일 때 보이지 않던 것들이 점차 눈에 들어오는 그런 느낌이 있다.) 


현실에서도 양성 피드백 고리에 빠지는 것인데, 요즘 내가 느끼는 느낌과 동일하다.

해야 할 작업들의 목록을 머릿속으로 계속 생각하고 엑셀로 옮겨놓다보면 엑셀이 과하게 늘어나서 도저히 집중이 되지 않는 단계가 된다. 집중이 되지 않으니 진행이 잘 되지 않고, 진행이 되지 않으니 속은 타고 성취도는 결국 낮아져 내가 지금 뭐하는거지? 혹은 나는 뭐지? 라는 비약적인 실망의 끝자락에 가있게 되는 것이다.


양성 피드백 고리에서 벗어나기 위해서 TDD에서는 "테스트"를 "자동화된 테스트"로 치환하라고 한다. 자동화된 테스트는 테스트를 자주 그리고 많이 하게 함으로써 긍정적인 형태의 양성 피드백 고리를 만들어 내는 것이다. 테스트가 많으니 스트레스가 줄고, 스트레스가 줄어드니 테스트를 더 많이 하게 된다는 논리다. 


현실로 돌아와 TDD의 "자동화된 테스트"로 치환할 만한 것들이 있을까 고민이 된다. "양성 피드백 고리"가 긍정적 형태로 나에게 적용 되길 바랄 뿐이다.



참고 : 테스트 주도 개발(켄트 벡 저 / 김창준,강규영 옮김 - 인사이트)




저작자 표시
신고
Trackback 5 And 댓글 0개

방명록에 왠 일본어로 된 글이 등록되었네.

|

오랜만에 블로그에 들어오니 일본어로 방명록에 글을 써 주신 분들이 계셔서 보니, 아마도 글작성 로봇이 광고글을 적어놓고 가신 듯하다.

내용은 약광고.


찾아주니 감사할 따름이구나.

저작자 표시
신고
Trackback 5 And 댓글 0개

Android Spinner의 높이관련 이슈 해결

|

Android Spinner의 높이관련 이슈 해결


안드로이드에서 Spinner를 하나 만들었는데, 영 모양새가 맘에 들지가 않았다.

보통 모양의 Spinner를 생각했는데, 높이가 너무 좁거나 또는 높이가 너무 큰 모양새가 나왔다.


좁은 예

ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, arrSpinnerGubun);


높은 예

ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, arrSpinnerGubun);




구글링을 통해서 정상 출력되는 예를 찾아보았다.

아래와 같이 adapter에 setDropDownViewResolver를 설정해 주니까 내가 원하는 normal한 크기로 세팅됨을 확인하였다.


ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, arrSpinnerGubun);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);



참고하자...



저작자 표시
신고
Trackback 2 And 댓글 0개

난 PM이 아니에요.

|

난 PM이 아니에요.


갑작스럽게 뜻하지 않은 PM 놀이중이다. PM을 해본적도 없을 뿐더러, "난 평생 개발만 할꺼야..."라는 인생의 목표를 가진 나로서는 적잖이 당황스러운 놀이다.


"언제까지 개발만 할래? 나이가 있으니 이제 관리를 해야지..." 라고 여러 사람들이 말하지만, 난 솔직히 관리보다는 개발에 더 재미를 느끼고 둘레둘레 최신의 기술에 기웃거리는 걸 더 좋아한다.


어쨋든 갑작스럽게 뜻하지 않은 PM 놀이가 한창이다. 볼 생각도 안하던 PM 관련 책들을 뒤져보고, 경험 많은 PM을 찾아가서 조언을 들어보고, 동영상 강의 시청에, 인터넷에서 자료수집에 다양한 활동을 해보지만, 아빠 양복을 걸친 어린 아이처럼 어색하고 불편하며, 뭔가 끌리는 거북한 느낌까지 날 불편하게 만들고 있다.


수 년간을 나 자신의 내부의 힘을 기르는데에만 치중했다는 생각이 든다. 내가 좋은 것만을 하고, 그게 옳다고 생각하고 "난 평생 개발만 할꺼야..."를 모토로 삼고 지내온 세월들이다. 외부와 교류하며, 부딪히고 깨지고 갈리고 무너지며 다시 세우고 땜질하고 격려하며 만들어가는 과정... 그게 PM인건가? 난 PM이 아직은 아니다. 그 언젠가 PM을 진정한 놀이로 생각할 때가 올꺼라는 생각이 든다... 



저작자 표시
신고
Trackback 5 And 댓글 0개

방문자가 총 21만명을 넘었네.

|

방문자가 총 21만명이 넘었네.


그동안 블로그를 들여다보지 않은지도 3개월이 넘었다보다.

로그인하려고 하니까 휴면계정으로 나온다. 요즘은 블로그보다는 페이스북이나 카카오스토리를 하다보니 긴 글을 쓸 필요도 느끼지 못하고 있어서인지, 블로그에 둔감해진다.


가끔은 정말 좋은 글을 쓰고 픈 욕구가 생긴다.

단문이 아닌 장문으로 글을 쓰고 싶어진다.

저작자 표시
신고

'기타' 카테고리의 다른 글

방명록에 왠 일본어로 된 글이 등록되었네.  (0) 2014.03.29
난 PM이 아니에요.  (0) 2013.09.04
방문자가 총 21만명을 넘었네.  (0) 2013.09.04
In-App Purchase 가이드 문서  (4) 2012.01.15
Nginx HTTP Server  (2) 2011.12.15
머큐리얼에 대하여...  (0) 2011.12.13
Trackback 2 And 댓글 0개

Test

|

Test

classes.tar


저작자 표시
신고
Trackback 4 And 댓글 0개

In-App Purchase 가이드 문서

|
In-App Purchase로 며칠을 고생하고 나서 작성한 문서입니다.

첨부한 파일을 참고해 주세요. 작으나마 도움이 될지 모르겠네요. 

 

저작자 표시
신고

'기타' 카테고리의 다른 글

난 PM이 아니에요.  (0) 2013.09.04
방문자가 총 21만명을 넘었네.  (0) 2013.09.04
In-App Purchase 가이드 문서  (4) 2012.01.15
Nginx HTTP Server  (2) 2011.12.15
머큐리얼에 대하여...  (0) 2011.12.13
SVN for mac  (0) 2011.12.12
Trackback 3 And Comment 4

Nginx HTTP Server

|
Nginx(엔진X)
   - HTTP Server
   - 이벤트 기반 구조 (Apache webserver based on Thread/Process model)

공식 사이트
    - http://www.nginx.org/ 
위키 사이트
    - http://wiki.nginx.org/Main 

참고 도서 (이미지 클릭시 이동)

 

Table of Contents

Preface 1

Chapter 1: Preparing your Work Environment 7 Setting up a terminal emulator 7 Finding and downloading PuTTY 8 Creating a session 8 Working with PuTTY and the shell 10 Basic shell commands 11 File and directory management 11

User and group management 15 Superuser account 15 User accounts 15 Group management 17

Programs and processes 18 Starting an application 18 System services 19 Process management 20

Discovering the Linux filesystem 22

Directory structure 22

Special files and devices 25 Device types 25 Pseudo devices 26 Mounting a storage device 27

Files and inodes 28 EXT3 filesystem specifications 29 Filenames 29 Inodes 29 Atime, ctime, and mtime 30 Symbolic and hard links 31

File manipulation 32 Reading a file 33

Table of Contents

Editing a file 34 Compression and archiving 35

System administration tools 37

Running a command as Superuser 37 Su command 37 Sudo command 38

System verification and maintenance 39 Disk Free 39 Disk Usage 39 Free memory 40

Software packages 40 Package managers 40 Downloading and installing packages manually 41 Building from source 42

Files and permissions 43 Understanding file permissions 43 Directory permissions 43 Octal representation 44 Changing permissions 44 Changing ownership and group 45

Summary 46 Chapter 2: Downloading and Installing Nginx 47

Setting up the prerequisites

GCC — GNU Compiler Collection PCRE library
zlib library
OpenSSL

Downloading Nginx

Websites and resources Version branches
Features
Downloading and extracting

Configure options

The easy way
Path options Prerequisites options

Module options
Modules enabled by default Modules disabled by default

Miscellaneous options

Configuration examples
About the prefix switch
Regular HTTP and HTTPS servers All modules enabled

47

48 49 50 50 51 51 52 53 54 55 55 56 58

59 59 60

61

62 63 63 64

[ ii ]

Table of Contents

Mail server proxy 64

Build configuration issues 65 Make sure you installed the prerequisites 65 Directories exist and are writable 65

Compiling and installing 66

Controlling the Nginx service 67

Daemons and services 67 User and group 68 Nginx command-line switches 68 Starting and stopping the daemon 69 Testing the configuration 69 Other switches 70

Adding Nginx as a system service 71

System V scripts 71 What is an init script? 73 Creating an init script for Nginx 73

Installing the script 75 Debian-based distributions 76 Red Hat-based distributions 76

Summary 77 Chapter 3: Basic Nginx Configuration 79 Configuration file syntax 79 Configuration Directives 80 Organization and inclusions 81 Directive blocks 83

Advanced language rules 84 Directives accept specific syntaxes 84 Diminutives in directive values 85 Variables 86 String values 86

Base module directives 86

What are base modules? 87 Nginx process architecture 87 Core module directives 88 Events module 93 Configuration module 95

A configuration for your profile 95

Understanding the default configuration 95

Necessary adjustments

Adapting to your hardware

Testing your server

Creating a test server

96 97 99 99

[ iii ]

Table of Contents

Performance tests Httperf

Autobench OpenWebLoad

Upgrading Nginx gracefully

Summary
Chapter 4: HTTP Configuration

HTTP Core module

Structure blocks

Module directives

Socket and host configuration Paths and documents
Client requests
MIME Types

Limits and restrictions
File processing and caching Other directives

Module variables

Request headers Response headers Nginx generated

The Location block

Location modifier

Search order and priority Case 1:
Case 2:
Case 3:

Summary
Chapter 5: Module Configuration

Rewrite module

Reminder on regular expressions Purpose
PCRE syntax
Quantifiers

Captures

Internal requests error_page
Rewrite
Infinite loops
Server Side Includes (SSI)

Conditional structure Directives
Common rewrite rules

100 101 102 103

105

106 107 107 108 109 110 114 117 121 123 125 127 130 130 131 132 133 133

136 137 138 138

139 141 141

142 142 142 144 145

146 147 148 149 150

151 153 156

[ iv ]

Performing a search User profile page Multiple parameters Wikipedia-like

News website article Discussion board

SSI module

Module directives and variables

SSI Commands
File includes
Working with variables Conditional structure Configuration

Additional modules

Website access and logging Index

Autoindex Random index Log

Limits and restrictions Auth_basic module Access
Limit zone

Limit request

Content and encoding Empty GIF
FLV
HTTP headers

Addition Substitution Gzip filter Gzip static Charset filter Memcached Image filter XSLT

About your visitors Browser
Map
Geo

GeoIP UserID filter Referer Real IP

SSL and security SSL

Setting up an SSL certificate Secure link

Table of Contents

          156
          156
          156
          157
          157
          157

157

158

160 160 162 163 163

164

164 164 165 166 166

168 168 168 169 169

170 170 171 171 172 172 173 175 175 176 178 179

179 179 180 180 181 181 182 183

183 183 185 186

[v]

Table of Contents

Other miscellaneous modules 187 Stub status 187 Google-perftools 187 WebDAV 188

Third-party modules 189

Summary 190 Chapter 6: PHP and Python with Nginx 191 Introduction to FastCGI 192 Understanding the mechanism 192 Common Gateway Interface (CGI) 193 Fast Common Gateway Interface (FastCGI) 194 Main directives 195 FastCGI caching 201

Upstream blocks 204 Module syntax 205 Server directive 206

PHP with Nginx 207

Architecture 207

PHP-FPM 208

Setting up PHP and PHP-FPM 208 Downloading and extracting 208 Patching 209 Requirements 209 Building PHP 209 Post-install configuration 210 Running and controlling 210

Nginx configuration 211

Python and Nginx 212

Django 212

Setting up Python and Django 213 Python 213 Django 213 Starting the FastCGI process manager 214

Nginx configuration 215

Summary 215 Chapter 7: Apache and Nginx Together 217

Nginx as reverse proxy

Understanding the issue
The reverse proxy mechanism Advantages and disadvantages

Nginx Proxy module

Main directives

217

218 219 220 221 222

[ vi ]

Table of Contents

Caching, buffering, and temporary files 225 Limits, timeouts, and errors 228 Other directives 229 Variables 230

Configuring Apache and Nginx 230

Reconfiguring Apache 231 Configuration overview 231 Resetting the port number 231 Accepting local requests only 232

Configuring Nginx 233 Enabling proxy options 233 Separating content 235

Advanced configuration 237

Additional steps 238

Forwarding the correct IP address 238 SSL issues and solutions 239 Server control panel issues 239

Summary 240 Chapter 8: From Apache to Nginx 241 Nginx versus Apache 241

Features 242 Core and functioning 242 General functionality 243

Flexibility and community 244 Performance 244 Usage 245 Conclusion 246

Porting your Apache configuration 246

Directives 246 Modules 249 Virtual hosts and configuration sections 250

Configuration sections Creating a virtual host

htaccess files
Reminder on Apache .htaccess files Nginx equivalence

Rewrite rules

General remarks On the location On the syntax RewriteRule

250 251

254 254 255

257

257 257 258 259

[ vii ]

Table of Contents

WordPress MediaWiki vBulletin

Summary

Appendix A: Directive Index

Appendix B: Module Reference Access

Addition* Auth_basic module Autoindex
Browser
Charset
Core
DAV*
Empty GIF
Events
FastCGI
FLV*
Geo
Geo IP* Google-perftools* Gzip
Gzip Static* Headers
HTTP Core
Image Filter*
Index
Limit Requests Limit Zone
Log
Map
Memcached
Proxy
Random index* Real IP*
Referer
Rewrite
Secure Link*
SSI
SSL*

259 261 262 263

265

287 287

287
288
288
288
288
289
289
289
289
290
290
290
290
291
291
291
291
292
292
292
292
293
293
293
293
294
294
294
294
295
295
295
295

[ viii ]

Stub status* Substitution* Upstream User ID XSLT*

Appendix C: Troubleshooting General tips on troubleshooting

Checking access permissions Testing your configuration Have you reloaded the service? Checking logs

Install issues
403 Forbidden custom error page Location block priorities

If block issues Inefficient statements Unexpected behavior

Index

Table of Contents

       296
       296
       296
       296
       297

299 299 299 300 300 300 301 301 302

303 303 304

305 
저작자 표시
신고

'기타' 카테고리의 다른 글

방문자가 총 21만명을 넘었네.  (0) 2013.09.04
In-App Purchase 가이드 문서  (4) 2012.01.15
Nginx HTTP Server  (2) 2011.12.15
머큐리얼에 대하여...  (0) 2011.12.13
SVN for mac  (0) 2011.12.12
일본이 보는 한국의 FTA  (2) 2011.12.02
Trackback 12 And Comment 2

머큐리얼에 대하여...

|

Mercurial source control management


머큐리얼은 무료이고 분산환경을 위한 소스 콘트롤 툴입니다. 직관적인 인터페이스를 통해서 효율적으로 프로젝트를 다룰 수 있도록 해줍니다.
사용하기 편하며 견고한 누구나 이상적인 버전관리 파일을 만들 수 있습니다.


분산 아키텍쳐

전통적인 버전 콘트롤 시스템(서브버전 같은)들은 중앙에 클라이언트-서버 아키텍쳐 형태로 프로젝트 리비전을 등록하는 형태입니다. 반대로 머큐리얼은 순수하게 분산환경이고 각 개발자들에게 전체적인 개발 히스토리의 로컬 복사본을 제공합니다.
이러한 방법은 네트워크 접근이나 중앙 서버에 독립적입니다.
간편하고 빠르게 Committing, branching, merging이 됩니다.


빠른

머큐리얼 구현과 데이터 구조는 속도를 위해 디자인되었습니다. 리비젼간의 차이(diff)를 만들어내거나 또는 몇 초전으로 되돌릴 수 있습니다. 결국 머큐리얼은 OpenJDK나 NetBeans 같은 큰 프로젝트에서도 완벽하게 적합합니다.


플랫폼을 떠나서

머큐리얼은 플랫폼 독립적으로 작성되었습니다. 대부분의 머큐리얼을 파이썬과 퍼포먼스를 위해서 포터블 C로 작성되었습니다. 메이저 플랫폼 모두에 바이너리 릴리즈가 있습니다.


확장성으로

머큐리얼의 기능은 익스텐션을 통해서 늘릴 수 있고, 공식적인 위키나 자신만의 것으로 만들 수 있습니다. 
익스텐션은 파이썬으로 만들어 지고 기본 command를 변경할 수도, 머큐리얼의 코어한 부분에 접근하근 명령어를 만들 수 있습니다. 


편한 사용

머큐리얼은 대부분의 서브버전 사용자들이 편하게 느낄 수 있게 구성되어 있습니다. 잠재적으로 위험한 액션들은 필요에 따라서 익스텐션을 통해 가능하지만 기본적인 인터페이스는 매우 편하고, 배우기 쉬우며 견고합니다.
Quick Start 을 통해서 몇분안에 얻을 수 있습니다.


오픈소스

머큐리얼은 GNU(General Public Licence Version 2) 또는 그 이상의 버전을 따릅니다.


유사 프로젝트

머큐리얼은 파일의 버전을 콘트롤하는데 사용됩니다. 유사한 프로젝트는 Git, Bazaar가 있습니다. 분산환경을 지원하지 않는 Subversion과 CVS도 있습니다.


웹사이트

머큐리얼 커뮤니티 웹사이트입니다. 소스는 GPLv2와 이상의 버전을 따릅니다. 자유롭게 패치를 보내주세요.
저작자 표시
신고

'기타' 카테고리의 다른 글

In-App Purchase 가이드 문서  (4) 2012.01.15
Nginx HTTP Server  (2) 2011.12.15
머큐리얼에 대하여...  (0) 2011.12.13
SVN for mac  (0) 2011.12.12
일본이 보는 한국의 FTA  (2) 2011.12.02
#1. SQLCipher는 진정 어려워.  (0) 2011.12.02
Trackback 5 And 댓글 0개

SVN for mac

|
소스 형상관리를 위해서 SVN을 많이들 사용하고 있지만, 맥에서 무료 SVN 툴을 구하기가 쉽지 않았다.
Versions, Cornerstone 등등을 사용해 봤지만, 유료에다가 복잡하기도 하고 그래서 무료 기간만 사용하고 말았다.

맥에서 물론 XCode의 SVN을 이용할 수도 있겠지만, 왠지 외부 프로그램이 더 맘에 들어서 XCode가 아닌 외부 툴 중에서 하나 골라봤다.

svnX - http://code.google.com/p/svnx/
저작자 표시
신고

'기타' 카테고리의 다른 글

Nginx HTTP Server  (2) 2011.12.15
머큐리얼에 대하여...  (0) 2011.12.13
SVN for mac  (0) 2011.12.12
일본이 보는 한국의 FTA  (2) 2011.12.02
#1. SQLCipher는 진정 어려워.  (0) 2011.12.02
갤럭스 넥서스, 볼륨 버그가 있다는...  (0) 2011.11.23
트랙백 1개 And 댓글 0개
prev | 1 | 2 | 3 | 4 | ··· | 25 | next

티스토리 툴바