기본 콘텐츠로 건너뛰기

프로그래머에게 필요한 EQ

  "당신은 똑똑하신가요? 그래서 코딩 잘하시나요?"

  좋은 프로그래머가 되기 위해서, 인정받기 위해서 필요한 것이 똑똑함, IQ라고 생각하시는가요? 물론 기본적인 논리적 사고, 분석력은 있어야 합니다. 아니 프로그래머라면 그냥 있다고 보면 되겠네요. IQ 차이는 10000 라인에 만들 수 있는 프로그램을 8000라인으로 줄여 줄 수 있는데 의미가 있다고 생각합니다.
  EQ가 필요합니다. 프로그래머들은 혼자 일하는 일이 없습니다. 다른 프로그래머와 함께 일하는 것은 물론 마케팅, 기획 등 다양한 분야의 사람들과도 함께 일하게 됩니다. 그래서 일을 진행시키고, 마무리하는데 있어서 중요한 것이 EQ입니다.
  EQ라고 하면 감성적인 능력입니다. 자신의 감정을 이해하고, 적절한 방법으로 표현할 수 있으며, 다른 사람들의 감정을 읽고, 적절히 반응해 줄 수 있는 능력입니다. 프로그래머들에게 필요한 능력이 바로 이런 능력이라고 할 수 있습니다. 아무리 좋은 아키텍처, 기술을 가지고 있더라도 회의 시간에 이를 적절히 피력하여 관철시키지 못하면 아무런 의미가 없습니다. 그런데 이런 회의를 이끌고, 의견 차이를 줄이는데 필요한 능력은 IQ가 아닌 EQ입니다.  회의나 토의를 하다가 감정적으로 대한다거나 화를 내서 회의를 망치게 되면 그 사람이 아무리 좋은 의견, 아이디어를 가지고 있더라도 무용지물이 되기 마련입니다. 게다가 개인적 평판까지 나빠지게 되어 실력까지 평가절하될 수  있는 것입니다. 
  프로그래머로서 새로운 기술을 익히는 것, 멋진 코드를 만들어 내는 것도 중요하지만, 사람들 사이에서 일어나는 일들을 이해하고 이해시킬 수 있는 감성적인 능력 EQ를 기르는 것도 그 무엇보다 중요하다는 것을 잊지말아야합니다. 
  다음은 EQ를 기를 수 있는 팁들을 모아본것입니다. 한두개씩이라도 실천해보려고 노력해보세요. 
1. 너 자신을 알라.
2. 함께 울 수 있는 감수성을 키우자. 
3. 기쁨, 슬픔을 말로 표현해보자. 
4. 답례없는 도움을 배풀자. 
5. 사람들과 함께 어울려라. 
6. 주위 사람에 대해 관심을 기울여보자. 
7. 작은 것에도 고마움을 표현하라. 
8. 절대로 버럭 화를 내지 않는다. 

댓글

이 블로그의 인기 게시물

AWS ELB 504 Error

AWS EC2  운영 중 가끔씩 볼 수 있는 에러가 있습니다. 대표적으로 다음의 세가지 502, 503, 504 입니다. 이 중에서 이번에 알아볼 문제는 HTTP 504 에러입니다 .  타임 아웃이 되어   Request 를 처리하지 못하는 상황이 됩니다 .   해결 방법부터 이야기 하자면 다음과 같이 웹서버의 Time-out 시간을 60 초 이상으로 늘리는 것입니다 . Web Server & Application Time-out >= 60 sec 그 이유는 다음과 같은 ELB의 특성 때문입니다. ELB는 클라이언트와 EC2 서버 양쪽으로 커넥션을 유지하고 있습니다. ELB는 클라이언트와  EC2 서버간의 커넥션을 관리하는 역할을 맡고 있습니다. 그래서 유효한 커넥션만을 남겨놓습니다. 이를 위해서 Time-out 시간을 가지고 이 시간동안 데이터가 송수신되지 않으면 연결을 끊습니다.  기본적으로 Elastic Load Balancing는 두 연결 모두에 대해 Time-out(유휴 시간) 시간을 60초로 되어 있습니다. 그렇기 때문에 HTTP 또는 HTTPS를 사용할 경우 "KeppAlive" 옵션을 사용하여 커넥션을 재활용해야 합니다. 이 때  ELB 커넥션도 재사용되기 때문에 CPU 사용률을 줄일 수 있습니다. Browser Time-out Opera 11.11 120 sec IE 9 60 sec Chrome 13 300 sec FireFox 4 115 sec 서버 로직 중에서 60초 이상 실행될 수 있는 부분이 있는 경우 504 에러를 자주 볼 수 있을 것입니다. 문제 해결을 위해서는 Web Server는 물론  Tomcat 설정 또한 60초 이상으로 변경해주어야 합니다. ...

Spring Data Projection 기능 활용

Projection Spring Data REST에서는 Projection 기능을 제공하고 있습니다. Spring Data란?   Data Access Layer에 대한 추상화 기능을 제공하는 프레임워크입니다. 간단히 설명하자면 기존에는 Database에 데이터를 저장하고 읽어오기 위해서는 Database의 종류, 스키마를 고려하여 SQL Query를 사용해서 데이터를 저장하고 읽어왔습니다. 그러나 Spring Data를 이용하게 되면 이 과정을 ORM을 사용하여 함수를 사용하여 쉽게 처리할 수 있습니다. ORM(Object Relational Mapping)란?   데이터베이스가 테이블, 필드간 상관 관계를 통해 도메인 데이터를 표현하였다고 한다면,  ORM은 Object, 클래스 간의 상관 관계를 통해 도메인 데이터를 표현하는 것을 말합니다. 다음의 링크는 Spring Data REST Documentation 중에서 Projection 부분입니다.               8. Projections and Excerpts 그러나 실제 "Projection" 기능을 사용하는데는 한가지 문제점이 있습니다. 레거시 웹서비스를 쓰고 있다거나, Spring Data  REST를 이용하지 않는다면 "Projection" 기능을 활용하는 것이 힘들다는 것입니다. Spring Data REST의 경우 데이터  Response Type이 json-hal 타입만을 지원하기 때문입니다. JSON-HAL 타입으로 경우 웹서비스 제공 입장에서 최선의 선택일 수 있습니다. 그러나 실제 프로젝트에서는 이를 쓰려는 클라이언트가 없을 경우 사용할 수 없게 될 것입니다. 그렇다면 Projection 기능만을 사용할 수 있는 방법이 없을까요? 있습니다. ProjectionFactory 를 직접 사용하는 것입니다. 다음과 같이 Spr...

자바스크립트 보안 정책 바로알기

자바스크립트 보안 정책 바로알기! Same Origin Policy 웹 리퀘스트 자신이 포함된 문서와 출처가 동일한 문서나 창의 프로퍼티만 읽을 수 있다. 출처 = 프로토콜 + 호스트 + 포트 Cross Domain 전제조건 현재 웹페이지의 주소는 http://www.ryanjin.net 이다. http://www.ryanjin.com의 페이지에서 http://www.google.com의 Rest API 를 호출하여 데이터를 가져오려고 한다. 결     론 서버의 도메인, 정확히 말하면 위에서 언급한 출처가 다를 경우 cross-domain 문제가 발생한다. 이러한 cross-domain은 서버 공격 및 보안 취약성을 갖게 되므로 서로 신뢰할 수 있는 경우에만 이를 허용하는 서비스를 구축하는 것이 일반적이다. Cross Domain 제약 극복 방법 Cross domain proxy 클라이언트는 서버의 API를 호출하고 웹 서버가 실제 호출하려는 원격 서버의 API를 호출하는 방법입니다. 그리고 그 결과를 클라이언트에 돌려줍니다. Proxy 방법은 호출하는 전체 생명주기를 제어할 수 있습니다. 클라이언트에게 반환하기 전 뭔가 처리할 게 있으면 원격 서버에서 받은 데이터를 변환, 가공할 수도 있습니다. Cross domain JSON 원격서버가 지원해야지만 사용할 수 있는 방법입니다. 원격서버는 Callback 함수 성격의 추가 파라미터를 받습니다. 원격 URL을 지정할 수 있게 클라이언트에 스크립트 태그를 넣어야 합니다. 요청에 지정한 callback 함수와 그 파라미터로 JSON 객체가 응답으로 옵니다. 서버에 어떤 작업을 하지 않아도 웹서비스 호출을 구현할 수 있다는 점입니다. (참고) Jason Levitt가 XML.com에 쓴 “JSON and the Dynamic Script Tag” (참고) 원리를 알고 싶으면 “Cross domain JSON...