📌 CDD에 대해서 학습하는 날이다.. 요즘 비가와서 그런지 기분이 한층 다운된 상태로 유지하고 있다... 조금 더 힘내서 기운을 되찾아서 열심히 해보자!!!

 

📗 오늘 학습한 내용

CDD (Component Driven Development)

  • 기획자가 이전에 요청 받았던 기능을 똑같이 사용하도록 요청했다. 이때, 팀에서 같은 UI 컴포넌트를 공유한다면 고민하지 않고 컴포넌트를 재새용 할 수 있는 방법론이 CDD이다.
  • 부품 단위로 UI 컴포넌트를 만들어 나가는 개발을 하는 것.

CSS in JS

  • 프로젝트의 규모나 복잡도가 점점 커지고 함께 작업할 팀원 수도 많아지면서 CSS를 작성하는 일관된 패턴이 없어서 효율적으로 작업하기 위해 구조화된 CSS가 필요해졌다.
  • 위의 문제점을 해결하기 위해 나온것이 CSS 전처리기이다.
    • CSS 전처리기: 많은 반복적인 작업을 요구하고 값을 찾는 번거로운 작업이 많아지면서 자연스럽게 CSS 문서의 양도 증가하여 유지관리에 영향을 끼쳤는데 이런 문제를 해결하기 위함.
      • 전처리기를 통해CSS 파일들을 잘 구조화할 수 있게 되었고, 최소한 CSS 파일을 몇 개의 작은 파일로 분리 할 수 있는 방법이 생겼다.
  • CSS 전처리기 중 가장 유명한 것은 SASS(Syntactically Awesome Style Sheets)
    • SASS: CSS를 확장해 주는 스크립팅 언어
      • CSS를 만들어주는 언어로서 JS 특정 속성의 값을 변수로 선언하여 필요한 곳에 선언된 변수를 적용할 수 있으며, 반복되는 코드를 한 번의 선언으로 여러 곳에서 재사용할 수 있도록 해주는 기능 등을 가지고 있다.
      • 하지만, 장점보다 다른 문제들을 더 많이 만들어지는 것이 밝혀졌습니다.
      • 내부에서 어떤 작업을 하는지 알지 못한 채, 스타일이 겹치는 문제를 해결하기 위해 계층 구조를 만들어 내는 것에 의지하여 컴파일된 CSS의 용량은 생각지도 못하게 커져있었습니다.
  • 전처리기 문제 보완 방법론
    • BEM, OOCSS, SMACSS
      • 공통 지향점
        • 코드의 재사용
        • 코드의 간결화(유지 보수 용이)
        • 코드의 확장성
        • 코드의 예측성(클래스 명으로 의미 예측)
  • BEM
    • 대표적인 CSS 방법론
    • Block, Element, Modifier로 구분하여 클래스명을 작성하는 방법 (--와__로 구분한다)
    • 클래스명은 BEM 방식의 이름을 여러 번 반복하여 재사용할 수 있도록 한다.
  • Styled-Component
    • 기능적 혹은 상태를 가진 컴포넌트들로부터 UI를 완전히 분리해 사용할 수 있는 아주 단순한 패턴을 제공
    • CSS를 컴포넌트화 시키는 라이브러리
      • 사용하는 이유
        • class, id 이름을 짓느라 고민될 때
        • CSS 파일 안에서 원하는 부분을 찾기 힘들 때
        • CSS 파일이 너무 길어져서 파일을 쪼개서 관리해본 적이 있을 경우
        • 스타일 속성이 겹쳐서 내가 원한느 결과가 나오지 않은 경우
  • Storybook
    • UI 개발, CDD를 하기 위한 도구
    • 컴포넌트들을 따로 볼 수 있게 구성해 주어 한 번에 하나의 컴포넌트에서 작업할 수 있다.
    • 복잡한 개발 스택을 시작하거나, 특정 데이터를 데이터베이스로 강제 이동하거나, 애플리케이션을 탐색할 필요 없이 전체 UI를 한눈에 보고 개발할 수 있다.
  • useRef
    • DOM 노드, 엘리먼트, React 컴포넌트 주소값을 참조할 수 있다.
    • useRef로 선언된 주소값은 컴포넌트가 re-render 되더라도 바뀌지 않는다.
    • 활용예제
      • focus
      • text selection
      • media playback
      • 애니메이션 적용

 

📘 추가로 공부할 내용

[udemy] React 완벽 가이드 강의 보기 (매일 조금씩 이라도 꾸준히 듣기)

UI/UX 패턴 React에서 구현해보기

useRef 사용법 자세히 찾아보기

 

📝 중요한 내용

  • CDD
  • CSS - in - JS
  • BEM
    • Block, Element, Modifier로 구분하여 클래스명을 작성하는 방법 (--와__로 구분한다)
  • Styled-Component
    • CSS를 컴포넌트화 시키는 라이브러리

'Daily > Today I Learned' 카테고리의 다른 글

22.07.04_TIL  (0) 2022.07.04
22.07.01_TIL  (0) 2022.07.01
22.06.28_TIL  (0) 2022.06.28
22.06.27_TIL  (0) 2022.06.27
22.06.24_TIL  (0) 2022.06.24

📌 오늘은 피그마를 하는 날이다!!!!!!!!!!!!!!!!!! 페어분이랑 마켓컬리를 피그마로 클론해보았다!

📗 오늘 학습한 내용

와이어프레임(wireframe)

  • 선으로 틀을 잡는다는 뜻으로, 제품 기획 단계에서 페이지를 어떻게 구성할 것인지 구조를 잡기위한 목저으로 만든다.
  • Low Fidelity Wireframe (Lo-Fi Wireframe)
    • 손으로 빠르게 그린 수준의 와이어 프레임
  • Middle Fidelity Wireframe (Mid-Fi Wireframe)
    • Lo-Fi 와이어프레임을 그리면서 아이디어가 어느정도 구체화되고 확정된 후에 보기 좋게 다음어주는 프레임
  • High Fidelity Wireframe (Hi-Fi Wireframe)
    • 와이어프레임을 완성본에 가깝게 작성한 프레임

프로토타입

  • 실제 제품과 거의 흡사하게 구현한 것으로 페이지 이동과 상호 작용이 가능하다.
  • 개발에 들어가기 전 단계에 작성한다.
  • UI의 상호 작용을 시뮬레이션하는 것이 목적이다.

📘 추가로 공부할 내용

[udemy] React 완벽 가이드 강의 보기 (매일 조금씩 이라도 꾸준히 듣기)

Figma

  • 캐러셀 구현 크기 맞추기

📝 중요한 내용

  • 와이어프레임: 코드로 페이지 구현 전 디자인을 틀을 잡는 단계
  • 프로토타입: 개발에 들어가기 전 UI 상호 작용을 시뮬레이션하는 단계

'Daily > Today I Learned' 카테고리의 다른 글

22.07.01_TIL  (0) 2022.07.01
22.06.30_TIL  (0) 2022.06.30
22.06.27_TIL  (0) 2022.06.27
22.06.24_TIL  (0) 2022.06.24
22.06.23_TIL  (0) 2022.06.23

📌 장마철이 시작하고 거의 매일 비가 온다고 하네요... 비 오는건 좋지만 나가고 싶지 않으니 집에서 코딩만 ㅎㅎ 그럼 오늘은 UI. UX에 대해서 알아보는 시간이네요!! 화이팅!!

 

📗 오늘 학습한 내용

UI (User Interface, 사용자 인터페이스)

    • 사람들이 컴퓨터와 상호 작용하는 시스템을 의미한다.
    • 화면상의 그래픽 요소외에도 키보드, 마우스 등의 물리적 요소도 컴퓨터와 상호 작용하기 위한 시스템이므로 UI라고 볼 수 있다.

GUI (Graphical User Interface, 그래픽 사용자 인터페이스)

  • 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 작업환경을 말한다.
  •  운영체제의 화면, 애플리케이션의 화면이 GUI이다.

UX (User Experience, 사용자 경험)

  • 사용자가 어떤 시스템, 제품, 서비스를 직・간접적으로 이용하면서 느끼고 생각하는 총체적 경험이다.
  • 제품, 서비스 자체에 대한 경험은 물론, 홍보, 접근성, 사후 처리 등 직간접적으로 관련된 모든 경험을 사용자 경험이라고 할 수 있다.

 

📘 추가로 공부할 내용

[udemy] React 완벽 가이드 강의 보기 (props 전달)

Figma 사용법 익혀보기

 

📝 중요한 내용

  • UI와 UX의 관계

'Daily > Today I Learned' 카테고리의 다른 글

22.06.30_TIL  (0) 2022.06.30
22.06.28_TIL  (0) 2022.06.28
22.06.24_TIL  (0) 2022.06.24
22.06.23_TIL  (0) 2022.06.23
22.06.22_Section2 회고  (0) 2022.06.22

📌 습하고 눅눅하던 목요일이 지나고 맑은 하루를 졸린눈으로 시작했습니다🥲 새벽까지 새로운 리액트 강의를 들었는데 내용이 너무 좋아서 시간 가는줄 모르고 들었습니다. 강의는 유데미의 'React 완벽가이드'라는 제목의 외국 강사분께서 강의하는 내용이었는데 리액트를 사용하는 이유부터 차근차근 설명해주시고 내용이 리액트에 대한 내용이 깊이있어서 천천히 학습 할 수 있었습니다.
또, 이번에 진행했던 express 서버를 구현해서 리액트를 이용한 crud를 프로젝트에 fetch를 해서 실제 서버에서 API 데이터를 받아와 렌더링을 해보기로 해서 마음이 들떴습니다. 이번에도 무사히 해결할 수 있도록 기대해 봅니다.**

 

📗 오늘 학습한 내용

JSON (JavaScript Object Notation)

    • 구조가 재귀 함수를 사용할 수 있는 트리 구조이다.
    • 데이터 교환을 위해 만들어진 객체 형태의 포맷
    • 데이터를 보내는 발신자와 받는 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야 가능

JSON 전송 가능한 조건 (transferable codition)

  • 수신자와 발진가가 같은 프로그램을 사용한다.
  • 문자열처럼 범용적으로 읽을 수 있어야 한다.

JSON.stringify: 객체를 JSON으로 변환

  • 직렬화(serialize)
  • 변환된 객체의 타입은 문자열

JSON.parse: JSON을 객체로 변환

  • 역직렬화(deserialize)

 

📘 추가로 공부할 내용

[udemy] React 완벽 가이드 강의 보기 (매일 조금씩 이라도 꾸준히 듣기)

React에 로컬서버 API 데이터 불러오기

  • express 로컬 서버 구현 
    • 데이터 조회
    • 데이터 추가
    • 데이터 수정
    • 데이터 삭제
  • React CRUD 프로젝트에 적용
    • API 데이터 조회 후 렌더링
      • React로 만든 페이지 새로고침해도 데이터 날아가지 않게하기.
    • API 데이터에 추가
    • API 데이터 수정 후 추가
    • API의 데이터 삭제

 

📝 중요한 내용

  • JSON.stringify: 객체를 JSON으로 변환
  • JSON.parse: JSON을 객체로 변환

'Daily > Today I Learned' 카테고리의 다른 글

22.06.28_TIL  (0) 2022.06.28
22.06.27_TIL  (0) 2022.06.27
22.06.23_TIL  (0) 2022.06.23
22.06.22_Section2 회고  (0) 2022.06.22
22.06.21_TIL  (0) 2022.06.21

📌 재귀함수를 하는 날인데 나는 재귀를 할 때마다 너무 어렵게 생각해서 풀이를 하는데 시간이 오래걸렸는데 이번 커리큘럼을 통해서 재귀를 조금 더 잘 쓸수 있는 사람이 되었으면 한다.

 

 

📗 오늘 학습한 내용

재귀함수

  • 자기 자신을 호출하는 함수
  • 반복적인 작업을 해야하는 문제의 코드를 간결하게 작성할 수 있다.
  • 모든 재귀 함수는 반복문으로 표현할 수 있따.
  • 재귀문제 해결 방법
    1. 문제를 좀 더 작게 쪼갠다.
    2. 1번과 같은 방식으로, 문제가 더는 작아지지 않을 때까지, 가장 작은 단위로 문제를 쪼갠다.
    3. 가장 작은 단위의 문제를 풀어서 전체 문제를 해결한다.
  • 재귀를 사용하는 경우
    • 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
    • 중첩된 반복문이 많거나 반복문의 중첩 회수를 예측하기 어려운 경우
  • 재귀적으로 사고하기
    1. 재귀 함수의 입력값과 출력값 정의
    2. 문제를 쪼개고 경우의 수를 나누기
    3. 단순한 문제 해결하기
    4. 복잡한 문제 해결하기
    5. 코드 구현
  • 재귀의 기초(base case)
    • 가장 해결하기 쉬운 문제부터 해결한다.
    • 나중에 재귀 함수를 구현할 때, 재귀의 탈출 조건을 구성한다.

 

📘 추가로 공부할 내용

재귀문제 풀어보기

  • 재귀문제를 풀 때 데이터의 흐름을 정확하게 이해하는 것이 중요하다. 이점을 주의해서 다시 풀어보자!

[udemy] React 완벽 가이드 강의 보기 (페어분의 추천 강의)

  • React의 기초 부터 심화과정까지 내용이 들어있다.
  • Redux, Next.js, TypeScript의 내용까지 있어서 들으면 굉장히 좋을 것 같다.

 

 

📝 오늘 느낀 점 & 마음 가짐

  • 페어분과 재귀함수 문제를 풀었는데 확실히 나는 오타도 많이나고 한가지의 접근 방식의 고정관념에서 빠르게 벗어나지 못하는 느낌이었다. 거의 다온듯한데 꼼꼼히 보지 않아서 냈던 오류도 많았다.
  • 재귀는 풀때는 재미없지만 풀었을 때 그 짜릿한 손맛이 있었다. 그리고 반복적인 실행을 여러번 실행할 때 코드를 조금 더 줄일 수 있다고 하는데 과연 실무에서도 많이 사용을 하는지 한번 찾아봐야하는 계기가 된 듯 하다.

'Daily > Today I Learned' 카테고리의 다른 글

22.06.27_TIL  (0) 2022.06.27
22.06.24_TIL  (0) 2022.06.24
22.06.22_Section2 회고  (0) 2022.06.22
22.06.21_TIL  (0) 2022.06.21
22.06.20_TIL  (0) 2022.06.20

Section2 회고

내가 정말 부족한 것이 무엇인지 그것을 고치려면 어떤것을 해나가야 하는지에 대해서 깨닫게 되는 섹션이 되었습니다. 전반적으로 부족하다고 느낀 것은 css로 디자인을 하는 부분입니다. 스터디원 분들과 진행했던 리액트 0부터 100까지 더미데이터를 사용하여 CRUD를 만들고 각자 진행된 것을 발표하였을 때 너무 디자인의 필요성에 대해서 느끼게 되었습니다.

 

🍀 목표 상기하기

  1. 연봉 4000이상의 개발자가 되기
  2. 회사의 코딩, 구현 테스트, 면접을 통과하여 회사에 취직하기
  3. 프론트엔드 개발자로 자리 잡고 풀스택 개발자 도전하기

 

✅ Keep

  • 매일 7시 기상 후 학습 준비
  • 동기와의 교류
    • 나는 항상 나보다 못하는 사람은 없다고 생각하면서 살아왔다 누군가에게는 배울점이 무조건 존재하기 때문이다. 그렇기 때문에 동기분들과의 교류를 통해 나의 지식을 전달해 줄 수 있고, 나도 지식을 얻을 수 있었다.
  • 시간을 지키면서 정해진 학습 내용과 심화적인 내용을 추가적으로 학습한 것
    • 정해진 시간에는 무조건 그것에 대한 공부를 열심히해서 잊어버릴 때도 있지만 기능구현이나 코플릿, 알고리즘 문제를 풀 때 다양한 방식으로 접근할 수 있다는 것을 생각나게 했습니다.
  • 알고리즘 1일 1문제 풀이
    • 아직까지 코플릿을 풀때 5~10분 사이를 넘지 않도록 도와준 가장 큰 습관이 되었습니다.
  • 스터디 활동
    • 스터디 내에서 다양한 프로젝트를 통해서 동기부여 되었습니다.

 

🚫 Problem

  • 원래 잠을 많이 자지않아서 가끔 밤을 새서 학습을 하다가 정규 학습시간에 졸린경우가 있었다.
  • 목표를 달성하기 위해서는 건강과 체력이 동반되어야 하는데 정신력만으로 버티고 있다.

 

🚴🏼‍♂️ Try 작성하기

  • 가장 유지하고 싶은 것은 잠시간을 정해두고 지키면서 정규 시간에 졸리지 않도록 해야겠다. (최소 4시간은 무조건 잠을 자도록 하자!)
  • 오전 9시 예습한 내용을 복습하고 정규학습을 시작할 수 있도록 해야겠다.
  • 섹션1에서 회고 했던 내용중 지키지 못한 것이있다. 그것은 하루에 1시간은 산책하여 건강을 조금이라도 증진시킬 수 있도록 해야겠다.

 

📌 우선순위 정하기

  1. 잠을 최소한 4시간은 자도록 하자!
  2. 건강을 지키면서 롱런 할 수 있도록 한다!
  3. 정규 학습을 통해 실력을 쌓는다!
  4. 부족한 부분은 다양한 강의를 찾아보며 나의 실력을 쌓는다!
  5. 동기들과의 교류를 더욱 많이 해본다!

'Daily > Today I Learned' 카테고리의 다른 글

22.06.24_TIL  (0) 2022.06.24
22.06.23_TIL  (0) 2022.06.23
22.06.21_TIL  (0) 2022.06.21
22.06.20_TIL  (0) 2022.06.20
22.06.18_TIL  (0) 2022.06.20

+ Recent posts