Skip to content

Commit

Permalink
Merge pull request #29 from KunHwanAhn/release/23.04.0
Browse files Browse the repository at this point in the history
Release/23.04.0
  • Loading branch information
KunHwanAhn authored Apr 28, 2023
2 parents 8dccb7e + 6639e17 commit c9353a6
Show file tree
Hide file tree
Showing 3 changed files with 370 additions and 0 deletions.
123 changes: 123 additions & 0 deletions Amazon_AWS/23-04-05_storybook/Index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Storybook을 통한 UI 개발 프로세스 간소화
- Florian Ludot
- Avanssion Inc.
- [발표자료](https://docs.google.com/presentation/d/1t3Hcpeo_DfmhtbEs1JKas-tOlagahEpp/edit#slide=id.g221e1dbd759_0_2)
- [Youtube](https://youtu.be/MFhzwwcmWj0?t=17)

## Who is this for
- Designers
- Frontend Developers
- Team Leaders & PMs

## Agenda
- What's Storybook?
- Why should you care?
- Prepare the design
- Storybook: implementation
- Storybook: deployment
- Publishing the library
- Integration
- Fianl key takeways

## What's Storybook?
- Storybook is a frontend workshop for building UI components and pages in isolation.

## Why should you care?
- Component-Driven Development
- Component Documentation
- Involve all stakeholders as soon as possible
- Improve testing
- Isolate UI from buisness logic

## Prepare the design
- Atomic Design
- Introduced by Brad Frost in 2013
- Methodology for creating design system

### Atomic Design
- [Demo](https://www.figma.com/file/xzj8gzuhGNqVyGfFNtCglC/Creative-Tokyo-Kit?node-id=13-222)
- Design Tokens
- Atoms
- Molcules
- Organisms
- Templates
- Pages

#### Design Token
- 스스로 사용할 수 없는 것들
- 컬러코드와 인지 가능한 이름 매핑
- 브레이크 포인트
- Elevation

#### Atoms
- 더 이상 쪼게질 수 없는 컴포넌트
- Typography
- Button
- Shape
- Squre
- Rounded
- State
- Pressed
- Hover
- Disabled
- Loading
- etc...

#### Molcules
- Atom의 조합으로 만들어진 컴포넌트

#### Organisms
- Atom & Molcules의 조합으로 만들어진 컴포넌트

#### Templates
- 목업 데이터로 채워진 중간 결과물

#### Pages
- 실제 데이터로 만들어진 최종 결과물

### Best Practices and Tips
- Don’t forget “easy to forget” component states (disabled, loading, …)
- Document your design as much as possible
- Avoid as much cognitive overhead for developers during the handoff
- Involve stakeholders in your design process

## Storybook: implementation
- [Demo](https://master--63f12fea8a787fc74f71d1b8.chromatic.com/?path=/story/tkcreativekit-introduction--page)
- Provide static and sandbox stories
- Document your storybook as much as possible
- Test accessibility right into your stories
- storybook-addon-designs to embed Figma previews
- Implementing templates and pages don’t suit every projects
- Involve stakeholders in your development process


## Storybook: deployment
- [Chromatic](https://www.chromatic.com)
- 스토리북을 만든 곳에서 만들어서 여러가지 호환성이 좋음
- [Github Page](https://pages.github.com)
- [AWS S3](https://aws.amazon.com/s3)
- Storybooks are private by default
- 5,000 free snapshots/month
- Sync your Chromatic project with the GitHub repo
- Use Continuous Integration

## Publishing the library
- [참고 저장소](https://github.com/florianldt/tkcreativekit)
- Should you really publish your component library?
- If yes, should it be a public or private one
- Build your library using Typescript or provide types
- Document your library
- Write tests and provide code coverage
- Use a changelog to keep track of changes

## Integration
- [참고 저장소](https://github.com/florianldt/tkcreativekit-integration)
- Use npm link x or npm install /local/path/to/x while testing integrations

## Fianl key takeways
- Study Human Interface Guidelines ([Web](https://m3.material.io/), [Apple platforms](https://developer.apple.com/design/human-interface-guidelines/guidelines/overview/), [Android platforms](https://developer.android.com/design?hl=ko))
- Onboard and communicate with stakeholders early on
- The Storybook is a living document
- Start using Storybook for new projects
- Gradually adopt it for existing projects
- Study top company Storybooks
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## v23.04.0 (2023-04-28)
- [AWSKRUG] Storybook을 통한 UI 개발 프로세스 간소화 (#28)
- [Woowa Tech] 우아한 테크세미나 - 시니어 공감 토크쇼 (#27)

## v23.01.0 (2023-04-05)
- [GDG] Devfest Webtech 2022 (임시) (#23)
- [Kakao] if(kakao) 2022 ESG (#24)
Expand Down
243 changes: 243 additions & 0 deletions Woowa_Tech/23-04-27_tech_leader_talkshow/00_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
# 테크리더의 공감 테크 쇼
- [Youtube](https://www.youtube.com/live/vga0PZK6AvI?feature=share&t=1355)

## 개발보다 어려운 피드백과 1 on 1
- 나만의 팀 리딩 노하우와 동기부여를 하는 방법
- 나와 조직 내의 팀원이 성장과 문화가 올바른 방향으로 가고 있는지 지속적으로 체크 가능한 방법이 있을까요?
- 팀원 중 팀 문화에 맞지 않고 시니컬하거나 부정적인 경우에는 어떻게 소통하시나요?

### 나만의 팀 리딩 노하우와 동기부여를 하는 방법 & 나와 조직 내의 팀원이 성장과 문화가 올바른 방향으로 가고 있는지 지속적으로 체크 가능한 방법이 있을까요?

#### From 황준태
- 적절한 아이스브레이킹
- 주변의 소리를 잘 듣고 분석
- 최대한 캐주얼한 느낌으로
- 팀원이 최대한 본인의 의견을 제시할 수 있는 방향으로

#### From 권용근
- 위임은 최대한 할 수 있는 만큼
- 큰 나무 밑에서는 큰 나무가 클 수 없다
- 전문적 권력. 지식이나 경험이나 역량에서 나오는 권력
- 개발 조직 내에서는 더 많은 영향력을 줌
- 리더는 기술이나 지식의 배경을 제공하고, 팀원은 그 안에서 자유롭게

#### From 최희준
- 다양한 분야, 다양한 경력을 가진 사람들. 최대한 공감을
- 언제나 의견을 자유롭게 낼 수 있는 환경으로
- 개발에 대한 위임. 일의 중요성과 진행을 지속적으로 갱신하여 동기부여

#### From 이덕우
- 리더 스스로의 성장을 위해 리더십 관련 도서나 교육
- 회사의 목표와, 개인의 목표를 얼마나 잘 Align 할 수 있을 것인가

### 팀원 중 팀 문화에 맞지 않고 시니컬하거나 부정적인 경우에는 어떻게 소통하시나요?

#### From 황준태
- 본인의 성향이 아닐지라도, 그 팀원의 입장에서 생각. 다만 그걸 방치하는 것은 조직의 문화를 좋지 않게 만들 수 있음
- 1 on 1은 다른 팀원보다도 더 자주. 노력을 기울였으나 변화가 없다면... 다른 팀원들 역시도 잘 케어 해줘야 한다
- 팀원의 성과를 잘 체크해서 좋은 평가를 받을 수 있도록
- 타 구성원과의 영향이 적은 업무 위주로 할당

## 내가 만들고 전파하는 개발 문화
- 내가 만들고 전파하는 개발 문화가 있나요?
- 새로운 기술 도입이 필요할 때 팀원을 어떻게 설득하고 있나요?

### 내가 만들고 전파하는 개발 문화가 있나요?

#### From 황준태
- 팀마다 성향이 매우 다르다...
- 시장의 문제를 스스로 찾아내고, 우리 고객에게 어떤 프로덕트가 필요할지를 고민하고 발굴하는 하여, 업계를 리드할 수 있는 팀을 만들고 싶었다
- 팀원들과 팀이 가고자 하는 방향에 대해서 계속 계속 이야기.. 프로덕트의 발전과 성장에 대해서 논의하고 회의하는 과정..
- 6개월, 1년, 3년 로드맵을 그리면서 달려가기 위해 필요한 것은?
- 수평적 커뮤니케이션
- 공동 책임제

#### From 권용근
- 파일럿 프로젝트 문화.
- 신규 입사자 온보딩을 위해서 배포 프로세스를 전부 경험해볼 수 있도록
- 업무량 자체는 기간 내에 해결이 불가능한 정도로, 의도적인 좌절을 주기 위해서. 좌절을 통해 더 큰 열정을..(?)

### 새로운 기술 도입이 필요할 때 팀원을 어떻게 설득하고 있나요?

#### From 이덕우
- 다양한 기술들의 장/단점을 비교하고, 팀에게 적합한지 여부를 끊임없이 확인
- 더 나아가서는 프로토타입을 만들어서 적합성을 검증

#### From 최희준
- 문제를 풀 수 있게 정의. 그 문제를 푸는 방법을 충분한 시간을 가지고 논의하고 토론하는 시간
- 이야기하는 시간 동안 일이 늘어질 수 있지만, 최대한 좋은 합의를 이끌어 내는 것이 더 좋다

## 팀원들의 성장 욕구를 만족시키며 프로덕트 성장시키지
- 팀원 간의 기술격차가 큰 상황에서 조직의 성장 방향과 팀원들의 성장 방향을 잘 맞추고 간극을 해소하는 방법은?
- 개발자의 성장 욕구를 만족시키면서 조직의 프로덕트 성장을 함꼐 이끌어낼 방법은?

### 팀원 간의 기술격차가 큰 상황에서 조직의 성장 방향과 팀원들의 성장 방향을 잘 맞추고 간극을 해소하는 방법은?

#### From 최희준
- ???

#### From 이덕우
- 팀에서 가장 중요하게 생각하는 것은 팀웍. 업무를 할 떄 기술만 가지고 할 수 없다
- 기술적으로 뛰어난 사람이 있고, 다른 역량이 뛰어난 사람이 있을 수 있다
- 각자가 갖고 있는 역량을 최대한 활용할 수 있도록 꾸준한 상담을 하고 있다
- 결국 팀원 간의 시너지가 중요

### 개발자의 성장 욕구를 만족시키면서 조직의 프로덕트 성장을 함께 이끌어 나가는 방법은?

#### From 권용근
- 회사라는 곳은 프로덕트의 성장을 지향하는 것이 맞다
- 개발자의 성장과 프로덕트의 성장은 항상 일치하지 않는다
- 회사는 항상 개발자의 성장을 생각하며 프로덕트를 주어주지 않는다
- 회사의 과제만으로 성장하는 개발자는 성장에 제한이 있다
- 스스로 성장할 수 있는 과제를 찾아내는 사람들을 계속 독려하고 이끌어주어야 한다
- Auto Mode. 외부의 자극 없이도 꾸준히 알아서 잘하는 사람들...

#### From 황준태
- 팀원은 모두 다 똑같은 기대치로 성장 욕구를 갖고 있는 것은 아니다.
- 성장 욕구가 낮은 팀원에게 높은 기대를 품고 어려운 과제를 주는 것은 역효과
- 팀원이 프로젝트에서 어떤 것을 얻고 싶고, 어느 단계까지 가고 싶어하는가, 프로젝트에서 어떤 것을 얻고 싶은가를 파악
- 성장 욕구가 큰 팀원
- 장기 프로젝트, 단기간 내에 해결하기 어려운 과제 => 어려운 과제만 주다보면 그 사람이 지치지 않을까? !!!!!!!!!!!!!!!!
- 성장 욕구가 낮은 팀원
- 단기 프로젝트, 적절한 시기에 해결할 수 있는 과제
- 하지만 가끔씩 성장 욕구가 낮은 사람에게도 도전할 수 있는 과제를 주어야 한다

## 개발자의 숙명, 끊임없이 학습해야 하는 시니어
- 새로운 기술이 끊임없이 나오는 상황에서 어떤 걸 공부해야 할지, 얼마나 깊게 공부해야 할지 정하는 노하우가 있나요?
- 개인이 부족하다고 생각하는 부분을 개선하고 연구해 나가는 구체적인 방법이나 노하우가 있나요?

### 새로운 기술이 끊임없이 나오는 상황에서 어떤 걸 공부해야 할지, 얼마나 깊게 공부해야 할지 정하는 노하우가 있나요?

#### From 권용근
- 게임 속의 스킬트리에 비유해보자
- 내가 잘하고 있는 것을 조금 더 깊이, 더 잘할 수 있게
- 물 속성으로 40레벨에 도달했는데, 갑자기 불속성을? 그럼 잡캐가 된다..
- 미래를 위한 학습을 한다.
- 물 속성으로 최대한 키웠는데, 이 후에 한 단계 더 나아가는 물속성 업그레이드가 있다? 그럼 그 업그레이드에 대해서 공부를 해야 한다.
- 모르는 키워드 수집
- 더 많은 일과, 더 많은 책임이 생긴다면, 큰 그림을 그릴 수 있는 설계 능력이 필요.
- 전체적은 모습을 아우르는 지식이 필요하기에 그 때, 의사소통이 가능한 레벨의 지식정도는 학습해야 한다
- 개발자 오픈채팅방

### 개인이 부족하다고 생각하는 부분을 개선하고 연구해 나가는 구체적인 방법이나 노하우가 있나요?

#### From 이덕우
- 모르면 모른다고 편하게 이야기하자.
- 모르는 것을 안다고 말해봐야 얻는 것이 없다.
- 동료들과 의사소통하면서 서로에게 자유롭게 정보를 공유하면서 함께 학습하고 성장할 수 있을 것이다.

## 시니어에게도 이직하고 싶은 순간은 찾아온다
- 스트레스 관리 잘 받으시나요? 어떻게 스트레스를 관리하고 있나요?
- 언제 이직이 필요하다고 생각하시나요? 이직할 떄 어떤 점을 고려하셨나요?

### 스트레스 관리 잘 받으시나요? 어떻게 스트레스를 관리하고 있나요?

#### From 이덕우
- 스트레스를 받아도 허용량이 있어서 overwirte되는 부분이 있다.

#### From 권용근
- 잘 안받는 편인 것 같다.

#### From 최희준
- 주말에는 업무와 관련된 것은 아무것도 안한다.
- 평소보다 가족과 더 많이 즐거운 시간을
- 평소에 관심있지만, 살펴보지 못했던 것들을 찾아본다

#### From 황준태
- 저녁 타임에 주문이 몰리다보니, 가족과 함께하는 시간을 방해 받으면서 스트레스가 쌓이곤 했다.

### 언제 이직이 필요하다고 생각하시나요? 이직할 떄 어떤 점을 고려하셨나요?

#### From 황준태
- 많은 이직을 하진 않았다.
- 갖고 있는 역량을 많이 쏟아붇는 편이다. 내가 성과를 만들었다고 느끼지 못한다면... 또는 조직이 날 필요로 하지 않는다고 느낀다면...
- 나의 일을 찾아볼까 하는 경우

#### From 최희준
- 업무적으로 성장을 할 수 없다고 느끼거나
- 주변 동료나 매니저가 긍정적인 영향력을 끼치지 못한다거나
- 내가 동료에게 긍정적인 영향을 미치지 못하고 있다고 느꼈을 때
- 내 성장이 정체되어 있다고 느꼈을 때

#### From 권용근
- 내가 배울 사람이 있는가? => 내가 리더고 이끌어야 하는 사람이라면? !!!!!!!!!!!!!!!!

#### From 이덕우
- 업무할 떄 무엇을 가장 중요하게 생각하는지에 따라 사람마다 다를 것이다
- 업무를 할 때 `재미`있는가?
- 내가 개발하면서 서비스가 계속 성장하고 있는가,
- 서비스가 고객에게 충분한 가치를 제공하고 있는가?
- 내가 주도적으로 개발할 수 있는가?

## 마지막으로 시니어를 준비하고 있는 분들께
- 나의 주니어 시절은 어땠나요?
- 주니어로 다시 돌아간다면 꼭 해야 하는 것. 하지 말아야 하는 것은 무엇인가요?
- 조직에 고연차 시니어가 없을 때 어떻게 하면 시행 착오를 줄이고 더 안정적이고 빠르게 성장할 수 있을까요?

### 나의 주니어 시절은 어땠나요? & 주니어로 다시 돌아간다면 꼭 해야 하는 것. 하지 말아야 하는 것은 무엇인가요?

#### From 황준태
- 욕심이 많았어서 밤샘 작업도 많았고, 집에 가는 것도 모르고 일했다
- 아무도 건들지 않았던 프로젝트를 본인이 나서서 해결하려고 했었다
- 주니어 시절에 폭풍성장한다고 생각한다. 자기 스스로 챌린지 하지 않으면 성장하지 못한다고 생각한다
- 특정 분야에서 2~3개 정도는 특화되어 있는 사람을 만들고 다양한 영역으로 확장하려고 했을 것이다

##### 주니어와 시니어의 차이는?
- 시니어가 되면 걱정이 많아진다.
- 우리 주니어가 잘 성장할 수 있을까?
- 시니어로서 프로덕트에 잘 기여할 수 있을 것인가?
- 회사의 사업 목표에 맞춰서 성과를 낼 수 있을까?
- 누가 시켜서 하는 것이 아니라 스스로 일을 하고 있을 때가 시니어이지 않을까?

#### From 최희준
- 사람들에게 좋은 영향력을 미치기 위해서 노력을 많이 했던 것 같다
- 시행착오를 많이 겪었지만, 그것들이 도움이 되서 지금까지 올 수 있었던 것 같다

### 조직에 고연차 시니어가 없을 때 어떻게 하면 시행 착오를 줄이고 더 안정적이고 빠르게 성장할 수 있을까요?

#### From 권용근
- 시행착오를 안 겪을 수는 없다. 시행착오를 통해서 더 크게 성장하게 할 수 있게 해준 발판이 됐다고 생각한다
- 시행착오를 겪는다고 안 좋다고는 할 수 없다.
- 겉으로 봤을 때는 속도가 느려보이지만, 탄탄한 개발자가 될 수 있는 길이될 수도 있다

#### From 이덕우
- 시니어가 있다면 확실히 많은 도움이 된다
- 내가 가고 있는 방향이 맞는지 흔들릴 때가 많다
- 가고 있는 방향이 맞는데도 괜한 걱정을 하고 있는 사람들도 많다
- 회사 안에서 찾을 수 없다면 회사 밖에서도 찾을 수 있다
- 많은 커뮤니티와 모임, SNS가 있다
- 나에게 맞는 멘토를 찾아서 떠나봐라

## Q & A

### 리더분들이 이끄셨던 스터디가 있었을까요? 어떤 방식으로 진행하셨나요?

#### From 권용근
- 스터디를 하긴 했는데... 경험담...
- 카페에 글 올려서 사람들을 모아서 스터디를 했는데...
- 많은 사람들이 지원해줘서 선별한다고 선별해서 진행했는데...
- 본의 아니게 강의형 스터디를 진행했었던 경험
- 그 스터디에 참여했던 사람이 어느새 동료로

### 시니어로 성장하고 싶은데, 팀원 관리 중심의 매니저의 역할만 줍니다. 어떻게 회사를 설득해야 할까요?

#### From 황준태
- 나는 개발 분야에 특화해서 성장하고 싶은데... 어느 순간이 되면 조직에서 조직을 맡기고 관리를 하라고 한다.
- 조직장에게 터놓고 이야기를 해야 하는 것이 필요하다 생각한다.
- 나에게 계속 이런 일이 주어진다면 나는 어떻게 성장해야 할까요?
- 보다 더 솔직하게, 터놓고 이야기하는 것이 중요하다
- 조직장에 따라서 다르게 될 수 있다
- 조직장의 케어에 따라서 이직을 고민하는 시점이 될 수 있다

#### From 이덕우
- 팀장을 하고 싶지 않았는데 맡겨서 괴리감이 있었다
- 왜 기술자로서 성장하고 싶었을까?
- 내가 성장해서 내가 맡은 서비스를 성장시키고 싶었다
- 내가 나 혼자 성장하는 것은 한계가 있다
- 팀원들을 성장시키면 같이 성장하면서 서비스를 성장시킬 수 있다라고 생각한다

### 기술 블로그에 작성하신 이벤트 기반 아키텍처 관련 글이 도움이 많이 됐는데, 노하우를 정리하는 노하우가 있으신가요?
- 노하우는 없다
- 스스로 납득이 되지 않는 아키텍처를 고치려고 오랫동안 생각했다
- 글을 다 작성하는데 1년 반 정도가 걸렸던 것 같다
- 오랜 고민한 것을 정리는 했다라는 느낌이다

0 comments on commit c9353a6

Please sign in to comment.