12/21/2023

PARA가 삶을 더 편하게 만드는 방법

4개로만 이루어진 폴더 시스템은 개인 및 비즈니스에서 지식을 활용하는데 도움이 된다.

“나쁜 아이디어를 저장하기 위한 좋은 시스템이 없다면, 아마도 좋은 아이디어를 저장할 시스템도 없을 것이다.” - 데이비드 앨런

구글드라이브나, 노션, 옵시디언의 폴더 구조를 PARA로 변경하지 않았다면, 내가 원하는 문서를 찾는데 많은 시간을 소비했을 것이다. 지금은 PARA 방법론 덕분에 내가 원하는 것을 찾는데 조금의 시간만 소요된다.

PARA 방법론으로 지식을 정리하여 몇 초 안에 필요한 모든 것을 찾을 수 있는 방법을 설명하고자 한다.

PARA의 작동 원리

PARA는 매우 유연하며 결과 지향적이고 간단하고 빠르게 구현된다. 폴더 및 카테고리가 존재하는 서비스에서 모두 작동된다. 본 글에서는 Google Drive를 예로 설명한다.

효율성은 동작이 단순해야 한다. 나의 구글 드라이브에는 Projects, Areas, Resources, Archive (=PARA)의 4개의 폴더만 존재한다. 


각 폴더를 단계별로 살펴보면 파일이 어느 폴더에 위치해 있는지 쉽게 이해할 수 있다.

Projects

이 폴더에는 진행 중인 프로젝트가 위치한다. “Projects”에 있는 모든 폴더의 공통점은 명확한 시작 날짜와 종료 날짜이다.

프로젝트 폴더 내부의 각 폴더에는 “Completed”라는 명확한 정의가 있다. 시간순으로 폴더를 유지하려면 각 폴더에 시작 날짜와 종료 날짜로 레이블을 지정한다.

날짜 라벨이 어떻게 생겼는지 아래를 살펴보자.


2023-2024는 시작 날짜와 종료 날짜를 의미한다. 요즘IT에 글을 기고하고 있고, 한국생산성본부랑 작업을 하는 것과 Aalto University에서 EMBA 수업을 듣고 있기에, 시작날짜와 종료날짜를 지정해서 관리한다.

프로젝트가 완료되면 폴더를 Projects에서 Archive로 이동하고 유용한 리소스는 Resources로 추출한다.

Areas

“Areas” 폴더는 Projects와 정반대이다. Areas 폴더에는 미리 정의된 날짜 없이 진행 중인 작업에 대해 레이블을 지정한다. 작업이 반복적으로 발생하기 때문에 “Areas”에 있는 것들은 완료가 되지 않는다.


“Areas” 폴더에는 개인적인 것, giljae.com 포스팅 등 계속 유지해야 하는 것들이 위치한다. “Projects”와 다르게 해당 폴더는 시간 레이블을 설정하지 않는다.

Resources

리소스 폴더는 보물 상자이다. 이 폴더는 단편적으로 제공되는 지식이 함께 모이는 곳이다. 완료된 프로젝트를 Archive로 옮겼던 것을 기억하는가?

폴더를 Archive로 이동하기 전에 프로젝트내의 문서, 이미지 및 기타 자료들을 살펴보고 재사용하고 싶은 유용한 리소스가 있다면, Archive대신 Resources로 이동한다.

리소스내의 폴더는 지속적인 관심을 끄는 것들이 위치된다.

예를 들어서 일반적인 리소스 폴더는 프로젝트 관리, 기술 문서, 기타 재사용 가능한 것들이 위치할 수 있다.

프로젝트 폴더와는 다르게 리소스 내의 폴더에는 시작 날짜와 종료 날짜가 없다. 폴더 이름에 라벨을 붙이는 것은 쉽게 찾기 위함이다. 따라서 폴더는 같은 관심사의 것들이 영역별로 구성된다.

리소스 폴더를 생성하면 깔끔하게 자료를 구성하는 효과를 느끼게 된다. 이 폴더는 지금까지 배우거나 경험한 것들을 명확하게 기록해 놓은 것이다.

Archive

아카이브의 컨셉은 꽤 단순하다. 특정 프로젝트가 완료되고 모든 관련 지식을 리소스 폴더로 필터링 하면 프로젝트 폴더를 아카이브로 이동한다. 이게 전부다.

PARA(Projects, Areas, Resources, Archive)는 지식을 정리하는 강력한 도구이다. 폴더와 파일을 구조화함으로써 지식을 잘 활용하고 과거 학습 내용을 다시 볼 수 있다. 이렇게 관리를 하면 시간과 에너지를 많이 절약해준다.

나는 현재까진 만족하며 PARA를 이용하고 있다. 이 글을 읽는 당신의 삶에 PARA를 적용해봤으면 좋겠다.

12/20/2023

리테일 분야 동향 예측

 한해를 마무리 하면서, 몸담고 있는 리테일 업계의 2024년 동향에 대해서 찾아보고 정리를 해봤다.

1. 옴니채널 판매


옴니채널은 쇼핑 생활에 없어서는 안 될 경험이다. 온라인과 오프라인을 결합하여 소비자가 어떤 상황에서든 원활한 쇼핑 경험을 일관되게 제공해야 한다.

2. 개인화


개인화는 고객 경험을 향상 시킬 뿐만 아니라 더 높은 전환율과 고객 충성도를 유도하므로 사업자와 소비자가 모두 Win-Win 하는 셈이다. 방대한 양의 고객 데이터를 수집하고 처리하는 기술이 발전하고 AI 기술도 발전함에 따라 PX(제품 경험) 전략이 지속적으로 성장할 것으로 예상된다.

3. 소비자에게 직접 판매


소비자에게 직접 판매하는 브랜드의 등장은 리테일 업계에 큰 변화를 가져왔다. 이들 브랜드는 전통적인 채널을 우회하여 소비자에게 직접 다가가고 있다. 이런 방식은 브랜드, 가격 및 고객 데이터를 더 잘 제어할 수 있다. DTC(Direct to Consumer)는 중개자를 제거함으로써 보다 경쟁력 있는 가격으로 고품질 제품을 제공하고 있으며, 이는 현대 소비자에게 잘 어울리는 전략이다.

4. 매장 내 경험


이번에 들었던 Retail Management 수업에서 교수님이 오프라인 매장은 다시 부활 할 것으로 언급했다. 단, 오프라인 매장이 단순 거래를 위한 허브 역할이 아니라 독특한 힙한 경험을 제공하는 영역으로 변모해야 한다고 한다. DIY 워크샵을 주최하거나, 자연 친화적인 아늑한 분위기의 카페, 증강 현실 피팅룸을 제공하는 매장 등 체험형 매장은 단순한 제품 그 이상을 제공하여 쇼핑 자체를 이벤트로 바꾸고 있다.

5. 물류


향상된 배송 및 반품 서비스가 새로운 표준으로 자리 잡고 있다. 당일 배송, 매장 밖 수령, 손쉬운 반품 정책에 대한 기대가 높아지고 있으며 소매업체는 혁신적으로 대응하고 있다. 드론 배송 및 자동 픽업 키오스크와 같은 개념은 더 이상 단순한 아이디어가 아니다. 이는 현실이 되어 제품을 받고 반품하는 방식을 바꾸고 있다.

6. 결제 방법


결제 수단이 다양화되고 있다. 구매 후 결제 서비스부터 암호화폐 수용 및 유연한 결제 옵션으로 소비자 선호도에 부응하고 있다. 이러한 유연성을 통해 소비자는 쇼핑 경험을 즐기면서 재정을 보다 효과적으로 관리할 수 있다.

7. 커뮤니티


커뮤니티 구축은 소매업체가 집중하는 분야이다. 이벤트를 하고 온라인 커뮤니티를 만들어 고객과 브랜드를 서로 연결하고, 공유하고, 참여할 수 있는 공간을 조성하고 있다. 이런 행위는 쇼핑 경험을 풍부하게 할 뿐만 아니라 브랜드 충성도를 높여 고객을 브랜드 옹호자로 변화시킨다.

8. 보안 및 개인정보 보호


데이터 보안과 개인 정보 보호는 디지털 시대에서 매우 중요한 요소이다. 소비자가 본인의 디지털 흔적에 대해서 주의를 기울이게 되면서 개인 정보 보호에 대한 관심도 높아졌다. 보안에 투자하고 투명하게 데이터를 처리하는 것이 소비자에게 신뢰를 얻고 서비스를 유지하기 위한 전제 조건이다.

9. 증강 및 가상현실


증강 현실과 가상 현실의 통합은 디지털 세계와 물리적 세계 사이의 격차를 해소하고 있다. 이러한 기술은 온라인 쇼핑 경험을 향상시키고, 가장 체험 및 대화형 형식을 제공하며 상품 탐색 및 구매 방식에 새로운 경험을 제공하고 있다.

10. 순환경제 수요 증가


환경을 생각해서 폐기물을 최소화하고 자원을 최대한 활용하여 제품과 서비스가 환경에 미치는 영향을 줄이는 것을 목표로 하는 경제 모델인 “순환 경제” 개념은 소비자들에게 인기를 얻고 있다. 업사이클링 또는 재활용 프로그램에 투자하면 탄소 배출량을 줄일 수 있을 뿐만 아니라 새로운 수익원을 창출하고 같은 생각을 가진 소비자들에게 함께 제품을 사고 팔 수 있는 저렴한 시장을 제공할 수 있다.

향후, 소매업은 단순히 제품 판매에만 국한되지 않을 것이다. 경험을 창조하고, 커뮤니티를 구축하고, 쇼핑을 더욱 개인화되고 편리하고 즐겁게 만드는 혁신을 수용할 것이다. 기술 발전과 진화하는 고객의 기대는 소매 환경이 엄청난 속도로 변화될 것을 의미한다.

References

  • https://www.akeneo.com/blog/top-retail-trends-for-2024/
  • https://www.inc.com/inc-masters/10-retail-trends-for-2024.html

12/19/2023

매일 생산성을 높이는 방법

업무를 보다 효율적으로 수행하기 위해서는 어떻해야 할까? 내가 사용하는 방법 중 몇가지 팁을 작성해본다.


처음 이 세계에 발을 담갔을때에는 짧은 시간에 많은 일을 하는 데 초점을 두었다. 그 당시에는 생산적이라고 생각했지만, 지금와서 생각해보면 내가 했던 작업 방식이 효과적이었는지, 어떻게 해야 더 잘할 수 있는지에 대해서는 크게 고민하지 못했던 것 같다. 과정을 깊게 고민하지 않고 최종 목표, 결과에만 집중했었다. 이 당시에는 장기적으로 무엇인가를 하고 있지 않았기에 단기적으로는 생산성을 달성 할 수 있었다. 장기적이지 않았기에 과정중에 생산성을 높이기 위한 루틴, 패턴등에 대해서도 크게 고민하지 않았다.

생산성이 높다는 것은 무엇을 의미할까? 내가 생각하는 대답은 작업을 보다 효율적으로 수행하는 데 도움이 되는 일관되고 반복 가능한 프로세스 기반하에 업무를 수행하는 것이라고 생각한다. 중요한 건 효율성이다. 효율성은 올바르게 일을 수행한다는 의미를 담고 있다. 그래야 더 적은 자원, 시간, 노력으로 목표를 달성할 수 있다.

생산성을 높이려면 자기만의 루틴을 만들어야 한다. “프로세스”화 시키는 것도 맞는 말이다. 내가 통제할 수 없는 영역에 대해서는 제쳐두고, 통제 가능한 영역에 대해서는 효율적으로 일 할 수 있도록 투자를 해야 한다.


첫째, 나는 자기전에 하루동안 일어난 일을 복기 하고 내일 해야 할 것들을 정리하는 습관이 있다. 이렇게 하면 좋은 점이, 오늘 내가 한 일들을 생각하면서 개선 포인트를 찾을 수 있고, 내일 해야 할 일에 대해서 내일이 다가오기전에 우선순위를 정할 수 있기 때문이다. 내일 해야 할 일에 대해서 우선 순위를 정하면서 간략히 정리를 하면 어떻게 이 일을 처리할지 윤곽이 보이고, 생각한대로 진행 할 수 있기에 자신감도 생기게 된다.

둘째, 나의 컨디션은 일정하지 않다. 올빼미형이기 때문에 하루중 에너지가 가장 충만한 시간은 점심 이후부터 저녁까지이다. 그래서 오전에는 메일과 업무를 정리하고, 가장 컨디션이 좋은 시간대에 가장 중요한 작업을 한다. 효율과 생산성을 달성하기 위해 최적의 근무 조건을 찾은 것이다. 물론, 이런 것들은 IT분야에서 일하는 사람이 주로 느낄 수 있는 혜택이다. 모든 분야에서 이런 루틴을 이용하기는 쉽지 않을 것이다. 최적이 아닌 작업 조건에서는 쉽게 주의가 산만해지기 때문에 생산성에 영향을 미치고 집중력을 앗아가기 때문에 의식적으로 최적의 환경에서 집중 할 수 있도록 통제해야 한다.

셋째, 밤을 새본적이 있는가? 프로젝트를 하다보면, 막다른 골목에 갇혀서 이 문제를 해결하기 위해 많은 시간을 쏟은 적이 있을 것이다. 시간이 흐를 수록 머리 회전이 잘 되지 않고, 새로운 생각이 떠오르지 않게 된다. 이 상태에서 무엇을 할 수 있을까? 정신적으로나 육체적으로 힘든 상태에서 문제를 해결하기 위해 고군분투 할 것이다. 생산성은 굳이 말하지 않아도 좋지 않을 것이다. 아주 급한 상황이 아니라면 잠시 휴식을 해야 한다. 당장 내가 인지하지 못하더라도 뇌와 신체는 휴식이 필요할 수 있기 때문이다. 보통 50분~60분을 일하고 10분 정도를 휴식을 취하려고 노력중이다. 잠시 휴식을 취하여 마음과 몸을 재충전하여 새롭게 집중을 하는 것이 생산성 향상을 위한 더 나은 방법이라고 생각한다.

넷째, 내가 하는 일에 가치를 더할 수 없는 일은 거절하는 방법을 배워야 한다. 생산성을 높이려면 목표에 부합하지 않는 작업은 거부해야 한다. 거절하기가 쉽지 않겠지만, 중요한 업무에 집중하려면 이 방법밖에 없다. 생산성이란 단순히 일을 하는 것이 아니라 올바른 일을 하는 것이라는 것을 알아야 한다. 거절하는 것에 대한 두려움이나 사랑받고 싶은 요구를 극복하면, 요청한 그들이 어떻게 반응할지에 대해서 크게 걱정하지 않아도 된다. 생산적인 토론을 하여 결과를 조정할 수 있기 때문이다.

다섯째, 이메일 관리를 잘하지 못하면 생산성이 저하될 수 있다. 메일을 조금만 봐도 중요한 일을 하는데 방해가 될 수 있다. 집중하는 시간에는 메일을 열지 않는 것이 가장 좋다. 정말 중요한 메일이면 따로 연락이 올 것이다. 이메일을 효과적으로 관리하는 방법에 대해서는 예전에 포스팅한 “효율적으로 일하는 방법” 참고할 수 있다.

여섯째, 집중해서 업무를 하려면 주의가 산만해지면 안된다. SNS, 카카오톡 등 집중을 방해하는 것들이 사방에 널려있다. 주의를 산만하게 만드는 요소를 인식하는 것이 이를 제거하는 첫 번째 단계이다. 집중하는 시간에는 최대한 모든 것을 차단해야 한다.

일곱째, 한 번에 많은 일을 하면 우리의 두뇌가 너무 많은 정보로 복잡해지기 때문에 작업을 완료하는 데 필요한 것들을 생성하지 못한다. 이것저것 많은 것을 하면서 바쁘게 지내는 모습이 좋은 핑계가 될 수 있지만, 시간과 태스크 관리 방법을 배우지 않으면 개인과 속한 조직을 발전시키는 일을 할 수 없다. 한 번에 하나의 일에 집중하기 위해 훈련을 해야 한다. 가장 좋은 방법은 비슷한 활동을 차례로 계획하는 것이다. 하나의 비슷한 업무가 끝나면 새로운 업무를 연결할 때 추가적인 노력을 들이지 않고도 이전 컨디션이 새로운 작업에 적용 되기에 훨씬 더 빠르게 업무 진행이 가능하다.

여덟째, 어떤 업무는 위임을 해야 한다. 위임에는 목표 달성, 신뢰 구축, 권한 부여, 동기 부여 등 여러가지 이점이 있다. 내가 잘 할 수 있는 일에 집중하고 다른 모든 것을 위임해야 한다. 하지만, 위임은 생각보다 쉽지 않다. 생각하는 방식과 기대치가 다르기 때문이다. 많은 것을 위임하는 방법을 알게되면 중요한 일을 할 수 있는 충분한 시간을 확보 할 수 있다.

아홉째, 우리의 두뇌는 너무 많은 정보를 담을 수 없다. 따라서 필요한 정보를 체계적으로 정리해야 한다. 본인의 지식 저장소를 관리하고, 일정 관리 툴을 이용해서 모든 것을 담으려고 하지 않아야 한다. 이렇게 해야 잠재력을 최대한 발휘할 수 있다.


적고 보니, 이런 것들이 루틴화되고 습관화되야 한다. 쉽진 않지만… 자신만의 루틴과 습관을 만들어야 더 나은 생산성을 가질 수 있다고 생각한다.

12/18/2023

[기고] 구글 생성형 AI 탑재한 메모 앱 NotebookLM 리뷰

 

지난 7월 12일 출시된 구글 노트북LM은 메모 작성 소프트웨어이다. 처음 이 제품을 접하게 되었을 땐 마이크로소프트의 원노트와 같은 기능을 상상했지만, 직접 써보니 생각했던 것과 좀 달랐다. NotebookLM은 사용자가 지정한 문서를 더 잘 이해할 수 있도록 해주는 보조자 역할을 해주기 때문이다. 선택한 소스를 기반으로 사실을 요약, 복잡한 아이디어를 설명하며, 새로운 연관성을 브레인스토밍할 수 있는 가상 연구 보조자라고 볼 수 있다.

—– 중략 —–

NotebookLM을 직접 써보며 느낀 점은 우리가 정보와 상호 작용하는 방식을 잠재적으로 바꿀 수 있는 유명한 도구라는 것이다. 나만의 맞춤형 AI 비서, 가상 연구 보조원으로서 정보를 요약하고, 복잡한 아이디어를 설명해 주며, 새로운 콘텐츠를 만들 수 있도록 도와준다. 이 도구가 계속 발전한다면, 우리가 노트를 작성하고 정보를 관리하는 일들이 어떻게 변화할 수 있을지 기대해봐도 좋겠다.

요즘 IT 기고글 보기

11/24/2023

기획자/디자이너와 개발자: 왜 우리는 사이 좋게 지낼 수 없는 건가요?

 


수많은 서비스와 제품은 기획자, 디자이너, 개발자의 협업으로 만들어진다. 우리가 매일 마주하는 서비스들은 원활하고 완벽하게 작동되지만, 이것을 구축하는 과정은 상당히 험난했을 수 있다.

왜? 기획, 디자이너, 개발자는 때때로 사이가 좋지 않다.

모두 같은 목표를 향해 노력하지만, 그 목표를 바라보는 관점은 실제로 다를 수 있다. 디자이너들은 자신의 디자인이 원래 배치된 방식과 다르게 구현되는 것을 보고 화를 낼 수 있다. 개발자들은 디자이너들의 디자인 문제를 따지는 것에 불만을 품는다.

많은 갈등은 상대방에 대한 이해 부족에서 비롯되는데, 둘 간의 분열이 그런 경우라고 느껴졌다. 우뇌와 좌뇌 사이의 평화라는 이름으로 생각을 정리한다.

“기획/디자인: 우리는 어려운 일을 만드는 것이 아니다.”

우리는 좋은 일을 하려고 노력하고 있다. 어려운 사람이 되려고 노력하지 않는다. 일부 개발자들 사이에서 유지 관리 수준이 높다는 얘기를 듣고 있고 우리가 기능보다 형태를 선호한다고 생각하는데, 이는 전혀 사실이 아니다. 기능을 최대한 활용할 수 있도록 기능에 가장 적합한 형태를 고안하려고 노력하고 있다.

과거와는 다르게 사용자 경험(UX)에 대한 역할을 맡고 있다. 해당 요구사항에 맞게 기획/디자인 하기전에 사용자에게 무엇을 제공해야 하는지 이해하는 것이 중요하다. 때때로 미려한 그래픽을 추가하려고 시도하지만, 이는 단지 사용자의 경험이 즐거운 경험이 되길 원하기 때문이다.

”개발: 우리는 어려운 사람이 되려고 노력하는 것이 아니다.”

코드를 작성할 때 프로젝트의 완성은 우리가 생각하는 것의 일부일 뿐이다. 앱은 시간이 지남에 따라 변경되며, 우리는 이런 변경이 쉽게 이루어질 수 있도록 노력하고 있다. 자동화된 테스트를 할 수 있는 코드도 필요하고, 구성 요소 등 우리가 당신들로부터 받은 작업 결과물에 대한 변경을 요청하는 것은 모두의 미래를 위해 테스트 가능하고 유연하게 유지하려는 목적이다.

걱정하지 않았으면 좋겠다. 유연성을 구축하는 것은 비용이 많이 들 수 있고 미래를 위한 과잉 구축을 의미할 수 있기 때문에 무한한 유연성을 요구하진 않는다. 우리는 “YAGNI”를 피하려고 노력한다.

“기획/디자인: 우리가 이해하도록 도와달라”

우리는 규칙을 배울 수 있고, 규칙을 이해하도록 도와주면 된다. 우리가 개발자들이 이해하지 못하는 언어로 때때로 말하듯이, 개발자도 우리가 이해하지 못하는 언어로 우리에게 말한다. 서로 이해하고 나면 가장 큰 혜택을 받는 사람은 사용자이다. 모두가 승리한다.

우리는 규칙을 따르지 않고 “고정관념에서 벗어나서 생각”하도록 교육을 받았다. 이것이 개발자의 삶을 어렵게 만들어야 한다는 의미는 아니다. 우리가 규칙을 이해하면 기능을 더 어렵게 만들지 않고도 한계를 뛰어넘어 규칙에서 벗어날 수 있다. 올바르게 동작되면 그래픽 기능도 강화할 수 있다.

“개발: 데스크탑에서 작동하는 것이 웹에서는 작동하지 않을 수 있다.”

윈도우 환경에서는 대소문자 파일 이름 구별이 중요하지 않을 수 있지만, 리눅스에서는 대소문자를 구별한다. 가능하면 파일 이름을 모두 소문자로 사용하는 것을 선호하며 하이픈으로 단어를 구분한다.

브라우저에서 이미지를 볼 때 큰 파일의 로드 시간이 눈에 띄지 않을 수도 있지만, 배경으로 사용하는 페이지 크기가 메가바이트라면 천천히 로드 되어야 한다. 성능을 계산하는 브라우저 플러그인이 많이 있으니 이를 사용했으면 좋겠다.

결론

서로 자기 입장만 얘기하면 협업이 어려워 질 수 있다. 본질적으로는 함께 협업을 해야 좋은 결과가 나온다. 그들은 동전의 양면이다. 각각 작동하지만 동일한 제품의 서로 다른 결과물에 초점을 맞추고 있다.

사용자 원하는 요구 사항을 충족하려면 두 가지 기술이 모두 필요하다. 기획/디자인, 개발은 동시에 작업하지 않고 순차로 작업한다. 예를 들어 기획/디자인은 초기에 개발자와 상담해야 한다. 연관된 제약 조건을 아는 것외에 실제로 구현될 수 있도록 보장되는지 확인이 되어야 한다.

하지만 실제로는 서로 다른 전문가들이 오해를 하는 경우가 많다. 서로의 지식을 이해 못하는 것은 오히려 자연스러운 것이다. 우리가 실천해야 할 것은 서로를 이해하는 법을 배워야 한다.

서로 사이 좋게 지내려면 어떻게 해야 할까? 첫째, 미팅에 참석해야 한다. 기획/디자이너 미팅에 개발자가 초대되어 브레인스토밍 세션 중에 합의를 해야 한다. 회의에 개발자를 초대하면 모든 당사자가 같은 환경에서 이해할 수 있게 된다. 너무 늦기전에 다툼을 방지하기 위해 업무를 시작하기 전에 서로 주의할 사항에 대해서 논의할 수 있어야 한다. 이 프로세스를 통해 잘못된 결과에 대해 소요되는 시간도 단축될 수 있다.

둘째, 피드백으로 소통해야 한다. 일반적인 충돌은 개발 중에 일부 사항이 누락되어 발생한다. 개발자는 이를 사소하게 여기고 삭제하거나 변경할 수도 있다. 따라서 기획/디자인과 개발 프로세스 사이에 피드백을 공유하는 것이 중요하며 권장해야 한다.

셋째, 팀으로 협력해야 한다. 개발자와 기획/디자이너는 엄연히 다른 직업이지만, 서로 다른 직업으로만 생각한다면 둘 사이의 간극을 메우는 데 도움이 되지 않는다. 서로를 하나의 팀으로 보려고 노력해야 한다. 누구나 기한 내에 좋은 품질로 제품을 완성해 출시하고 싶어하는데 그러기 위해서는 협력을 해야 한다. 일반적으로 상대방을 이해할 수 없을 때는 타협이 어렵다. 그러니 미워하기보다는 이야기하고 협상을 해야 한다. 궁극적으로 더 나은 팀이 되기 위해 한 단계 더 나아가는 것이다.

넷째, 서로 협업하여 작업할 수 있도록 만들어진 다양한 도구가 있다. 이러한 도구들은 개발자와 디자이너가 동일한 정보를 공유할 수 있도록 도와준다. 즉, 공동 작업보다 실질적이고 효과적으로 작동할 수 있도록 해준다. 예를 들어, Storybook은 UI 구성 요소와 페이지를 별도로 구축하기 위한 오픈 소스 도구이다. UI 개발, 테스트 및 문서화를 간소화한다. 또한 개발을 표준화하고, 코드 중복을 줄이고, 팀 간 협업을 개선하고, 확장성을 촉진 할 수 있는 기회를 제공한다.

기획/디자인, 개발은 서로에게서 배울 수 있는 것이 많다. 어떤 역할을 하더라도 프로젝트 측면에서 고민해야 한다. 어느쪽도 서로에게 고통을 주려고 하지 않는다. 서로 아는 것과 경험, 관점이 다르기 때문이다.

불일치를 피하는 가장 좋은 방법은 프로세스 초기에 자주 소통하는 것이다. 가능한 한 빨리 개발자를 참여시켜야 한다. 이렇게 해야 핸드오프 단계가 시작되기 훨씬 전에 잠재적인 문제를 식별하고 해결 할 수 있다.

지식을 공유하는 것도 중요하다. 코딩을 배울 필요는 없지만, 개발자의 작업 방식과 그들이 직면한 과제를 이해하는 데 시간을 할애하는 것은 가치가 있다.

기획/디자인 측면에서 사용자가 필요로 하는 것, 경험하는 것 이상의 부분에 집중할 수 있다고 생각한다. 물론 이것은 매우 중요하다. 하지만 요구 사항과 프로젝트가 전반적으로 얼마나 효과적으로 개발될 수 있는지 집중해야 한다. 팀에 효과적인 의사소통, 효율성 및 일관성이 부족한 경우에는 사용자 경험에 영향을 미칠 수 있기 때문이다.

결국 우리 모두는 훌륭한 결과를 만들고 싶어한다. 하지만 그러기 위해서는 이해와 타협을 바탕으로 한 일관된 팀워크가 뒷받침되어야 한다. 좋은 결과를 만드는 것을 잊지 말아야 한다.

11/23/2023

좋은 개발자를 만드는 습관

 


좋은 개발자가 되려면 기술적인 능력 이상의 것이 필요하다. 프로그래밍 언어 및 프레임워크에 대한 숙련도가 필요하며 그 외에 일부 습관이 숙련되고 효과적인 개발자로 두각을 나타내는 데 도움이 될 수 있다.

좋은 개발자로 만드는 습관을 적어본다.

꾸준한 연습

기술이 끊임없이 나오고 발전하고 있다. 최신 트렌드를 이해하는 것은 매우 중요하다. 좋은 개발자는 기숧을 배우고 향상시키려는 마음이 있어야 한다.

블로그를 읽는다거나 세미나에 참석하거나 온라인 강좌를 듣는 형태로 새로운 기술에 대해 알고 있어야 한다.

이런 습관이 지속되면 귀중한 사람이 될 수 있다.

협업

혼자 일하는 상황은 없다. 다른 개발자들과 끊임없이 협업을 해야 한다. 협업을 하려면 잘 구성된 코드를 작성해야 한다. 내가 작성한 코드를 다른 이들이 쉽게 이해하고 작업할 수 있게 해야 한다. 좋은 개발자는 코딩 표준을 따르고, 명명 규칙에 일관성이 있고, 이해하고 관리하기 쉬운 코드를 작성한다.

버전 관리

여러명이 협업을 하기에 버전 관리는 매우 중요하다. 코드 변경 사항을 추적하고 꼬이지 않도록 관리를 해야 한다. 좋은 개발자는 Git과 같은 버전 관리 시스템을 사용할 줄 알아야 한다. 이런 도구를 이용해 코드를 관리하고 다른 이들과 협업을 해야 한다.

테스트

좋은 개발자는 작성한 코드를 테스트하는 것에 대한 중요성을 이해한다. Normal 테스트만 하는 것이 아닌, Abnormal 테스트도 진행해야 한다. 이렇게 테스트를 해도 버그가 나오기 때문이다. 코드에 대한 테스트를 작성하고 자동화 테스트 도구를 사용하여 시간 절약 및 완정성을 보장해야 한다. 테스트는 코드 품질을 유지하고 버그를 해결하는데 도움이 된다.

배움

이 바닥에 발을 들였으면, 계속 배워야 한다. 내가 사용하는 기술 스택외의 분야에 트렌드를 인지하고 새로운 기술이 등장하면 왜 기술이 나왔는지, 어떤 목적이 있는지등을 이해해야 한다. 이런 습관이 있어야 앞서 나가는데 도움이 될 수 있다.

좋은 개발자가 되려면 기술적인 능력 이상의 것이 필요하다. 위에서 언급한 것에 대해서 습관화 해야 한다. 이러한 습관은 고품질의 코드를 생성하는데 도움이 되고 귀중한 사람이 될 수 있다.

11/22/2023

문제에 직면 했을 때

 


프로젝트를 진행하다보면 다양한 문제에 직면한다. 문제를 왜 해결하지 못하는지와 문제를 해결하는 것에 대해서 느낀바를 적어본다.

문제를 해결하지 못하는 이유

사람들은 문제를 해결하기 위해 필요한 것이 무엇인지에 대해서 동일한 인식을 갖고 있지 않다. 특히 IT분야의 경우는 더욱 어렵다.

문제를 해결하기 위한 능력이 있더라도 자신감이 없다. 그리고 실수를 두려워한다. 문제를 해결하기 위해 시도할 수 있지만 여전히 방어망을 구축해둔다. 실패를 하더라도 비난 받으면 안되기 때문이다.

문제가 있을 때마다 조언을 구하는 사람들이 있다. 경험있는 사람이 조언과 지도를 해줘서 문제를 해결하더라도 스스로 생각하지 않도록 훈련시키는 결과가 발생할 수 있다.

단순한 문제를 해결하는 데 익숙하지만, 복잡한 문제를 해결하는 데 문제를 재정의하고 제약을 만들고 단위 단위로 분리하는데 익숙하지 않다. 능력이 없는 것이 아니라 좀 더 철저하고 집요하게 생각할 수 있도록 연습이 필요하다.

어떤 사람들은 특정 문제가 심각하다는 것을 인식하지 못할 수도 있다. 이 문제로 인해 발생할 수 있는 영향을 보지 못할 수도 있다. 더 큰 그림을 보려면 도움이 필요하다.

위에서 언급했지만, 집요하게 파고들지 않는 경우도 있다. 이 문제에 대해 무관심해지면 “그건 내 일이 아니라”라는 반응을 하는 경우가 있다.

채용 실수나 역할을 잘못 부여하여 적합하지 않는 경우도 있다. 그들이 무능력하다는 것이 아니라 그들의 능력이 역할에 적합하지 않을 수도 있다는 것을 알아야 한다.

문제를 해결하는 접근 방식

제약의 중요성

문제를 해결하는 사람은 문제에 대해서 명확하게 정의한다. 이게 정말 문제인지 아닌지 판단하기 위함이고, 문제로 인식될 경우에 해결 방안을 모색하기 위함이다.

문제로 인식이 되면, 제약을 만들어야 한다. 집중해야 할 부분과 하지 말아야 할 부분을 알아야 하기 때문이다.

너무 많은 선택권을 주면 창의성이 오히려 제한된다. 충분한 제약이 있으면 새로운 방식으로 해결방안을 찾도록 자극할 수 있다.

제약의 개념을 이해하기 위해서 놀이터를 예시로 들어본다. 놀이터 주변에 울타리를 설치하면 공간 전체를 아이들이 탐험하고 놀기 위해 사용한다. 울타리는 그들에게 안전과 안정감을 주기 때문이다.

반면, 놀이터 경계의 울타리가 제거되면 경계가 불분명해지고 아이들은 안전하게 느껴지는 중앙에 머무르게 된다.

명확한 제약이 없으면 현재 발생한 문제외의 다른 문제와 리스크를 언급하는 상황이 종종 발생한다. 본 문제에 집중하지 않고 다른 문제를 가져오면서 더욱 문제를 키우는 현상이 발생한다.

합의 실패 대응

문제를 해결하기 위한 충분한 지원을 받지 못하고 해결책을 내기 위한 연합을 구축하지 못하기 때문이다. 문제를 해결하기 위해서는 여러 이해관계자의 도움이 필요한데 합의를 얻지 못하는 경우 문제를 해결하지 못하는 상황이 종종 발생한다.

합의를 구축하는 방법에는 여러가지가 있지만, 개인적으로 유용하게 생각하는 것은 조용히 기반을 마련하는 일본의 네마와시 개념을 선호한다.

서양식 접근 방식은 아이디어나 프로젝트를 구상하고 이를 상사에게 제안한 후 아이디어가 좋으면 선택되는 것이다. 이런 접근 방식이 성공한다고 해도 이미 합의가 되지 않는 이해관계자와 협상해야 하기 때문에 진행하면서 수많은 장벽과 마주치게 된다.

네마와시는 초안 형식으로 준비하지만, 상사 뿐만 아니라 이해관계자와 함께 확인하여 합의를 구축한다. 인내심도 필요하고 고도의 정치도 필요하다.

이제까지 잘 지내오던 환경에 다른 것이 전달되었을때, 대부분 저항한다. 이것은 인간의 자연스러운 반응이다.

타이밍

타이밍이 전부다. QR코드가 처음 세상에 나왔을 때, 생각보다 사람들은 많이 사용하지 않았다. 일부에서 사용되긴 했지만 전체가 사용하기에는 어려움이 있었다.

COVID-19가 모든 것을 바꿨다. QR로 인증을 해야 했기 때문이다.

문제를 파악하고 제약 조건을 설정하고, 브리핑하고 해결 방안에 대해 합의 구축 및 실행을 하는 것이 문제 해결에 필요한 구성 요소이다.

트레이드 오프

몇 가지 문제를 해결했을 수도 있지만, 몇 가지 새로운 문제가 생길 수도 있다. 이 부분이 절충점이며 피할 수 없다. 이런 경우 아무런 조치를 취하지 않는 것에도 장단점이 존재한다.

예를 들어, React Hooks는 코드 재사용성에 대해서 대폭 단순화했지만, 추상화를 구축할 때 기억해야 하며 value/reference identity에 대해서 배워야 한다.

궁극적으로는 문제를 해결함으로써 새롭게 나오는 문제를 이전 문제보다 해결하기 쉽고 해결하기 위한 리소스를 저렴하게 만드는 것이다. 즉, 작은 문제 대신 큰 문제를 제거해야 한다.

결론

주의를 기울이고 한발 물러나서 올바른 문제를 해결하고 있는지 자문을 해야 한다. 다른 문제에 대한 해결책에서 발생한 문제를 해결하고 있을 수도 있기 때문이다.

문제는 계속 발생하기에 가장 중요한 것은 문제를 해결하고 더 큰 문제가 발생하지 않도록 하는 것이다.