[BACKEND]OAuth
OAuth
OAuth
Token
Hashing
Session
Cookie
```js function fibonacci(n) { //일단 초기 배열이 [0, 1]에서 시작하여 배열의 요소를 누적해 나가는 방법 //그리고 이미 구해놓은 것은 배열의 요소로 저장해놓기..!!! 그래야 런타임이 초과되지 않는다
JSON(JavaScript Object Notation)
재귀(再歸) : 원래의 자리로 되돌아가거나 되돌아옴.
가위바위보
RegExp
String.prototype.replaceAll()
fetch와 비슷한 역할을 하는 라이브러리
여러 웹사이트에서 해당 정보만 불러 업데이트 하기 위해 특정 URL로부터 정보를 받아오는 역할을 한다.
비동기적 실행(Asynchronous execution)
점의 위치 구하기
extends
this나 super에 대한 바인딩이 없고, methods 로 사용될 수 없습니다. new.target키워드가 없습니다. 일반적으로 스코프를 지정할 때 사용하는 call, apply, bind methods를 이용할 수 없습니다. 생성자(Constructor)로 사...
JavaScript는 프로토타입 기반 언어(prototype-based language)라 불림
Object Oriented Programming
class - 청사진
일급 객체(first-class citizen)
파일탐색 dir
innerHTML VS textContent
Spread syntax
primitive data type, reference data type
Scope
spread
```js let x = 10; function outer() { console.log(x); // ReferenceError // outer 안에 새로운 x가 잇고 console.log의 위치는 새로운 x의 할당보다 먼저 위치하고 있기 때문에..? let x = 20; ...
스코프
원시자료형
햄버거 만들기
어떤 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것을 가지고 ADT(Abstract Data Type) 혹은 추상 자료형이라고 합니다.
옹알이(1)
dot notation
mutable(원본이 변함)
연산자
변수
todo-list 2
todo-list
quote
clock
link
Login
next 메소드에 인수전달
generator
async
Promise
Class
프로토타입
call, apply, bind method
setTimeout
Closure
전개구문(Spread syntax)
나머지 매개변수
구조분해할당(Destructuring assignment)
array method
array method
array method
string
Math
toString()
Symbol.for()
Symbol
Object.assign()
Computed property
생성자 함수
var, let, const
배열 반복문 for
array
Object method
Object in
for in
객체
함수표현식
정의
function
switch
for
논리연산자
기본 연산자
형변환
alret, prompt, confirm
변수 선언에 있어 유의할 점
Test-driven Development
json-server - json 파일을 이용하여 REST API 서버를 구축해주는 라이브러리
React.lazy()
react 18에서 바뀐 점
개발자가 스스로 커스텀한 훅, 반복되는 로직을 함수로 뽑아내어 재사용
렌더링 최적화를 위한 Hook 중 하나
컴포넌트는 기본적으로 상태가 변경되거나 부모 컴포넌트가 렌더링이 될 때마다 리렌더링을 하는 구조
Function Component & Class Component
React Diffing Algorithm
Virtual DOM
React가 아닌 JS를 번들링할 때와 마찬가지로(앞 내용의 번들링까지) 진행하면 터미널에서
리액트만 알아서는 개발하기가 어렵다
프론트엔드 개발자에게 번들은 사용자에게 웹 애플리케이션을 제공하기 위한 파일 묶음
Redux의 상태관리
상태란 동적으로 표현되는 데이터
React는 DOM을 직접 건드리는 것을 금지한다.
Storybook
Component-Driven Development(CDD)
React 함수 컴포넌트 Pure Function 항상 동일한 input, 동일한 output props를 받아서 JSX를 출력
리엑트 배칭
React 데이터 흐름
SPA(Single Page Application)
리액트
기존에 YourPage는 하나의 페이지 안에 진행목록, 커미션목록, 프로필 지금은 없어진 채팅까지 세가지 모두 한번에 표현하려고 했다 그러다 보니 컨텐츠 하나하나가 여유가 없어보였다.
function ProfileModule({ info }) { return ( <StyledContainer> <Buttons text="수정" buttonStyle="smallEdit" /> <StyledImgContai...
HomePage에는 세 개의 커스텀 훅이 사용된다
리팩토링을 마친 Typographies 컴포넌트는
우리는 커미션 신청을 채팅으로 하도록 설계를 했다.
기존 imageComponent
타이포그라피 리팩토링하는 과정에서 createTag의 input 컴포넌트가 말썽인걸 찾았다.
기존 Typography 컴포넌트
theme과 함께 수정해야할 컴포넌트
client 폴더 바로 안에(package.json과 동일한 위치).env 파일을 만들고 .gitignore에 .env 추가
우리 팀의 프로젝트는 리팩토링이 너무나도 필요하다. 모든 부분에서 필요하다고 생각이 들기 때문에 기존의 프로젝트를 건들지 않고 fork로 새로운 repository로 리팩토링을 진행할 것이며 또한 https를 적용하기 위해 서버와 클라이언트 모두 새롭게 배포를 한다.
230327 월요일
230320 월요일
230313 월요일
230303 금요일
날짜 앞에 ~를 붙인 것은 팀이 결정되고 본격적인 프로젝트가 시작되기 전에 내가 미리 준비해야했던 것들 또한 회고하기 위해 붙이게 되었다.
코드스테이츠의 마지막 스테이지인 메인 프로젝트 기간이 마무리 된지 벌써 일주일이나 지났다.
크몽, 콜리, 크레페 ( 소규모 커미션 )** : 포토샵, 그림그리기 등등 재능기부 형식으로 변경
README.md
GitHub 리포지토리
유닛 테스트 만으로는 해당 기능이 100% 정상적으로 동작한다고 단정할 수 없음
용어
REST(Representational State Transfer) API(Application Programming Interface)
작성 목적
화면 정의서
소프트웨어 개발 단계
SRS(Software requirements specification)
Create React App
필요한 기술 스택
dev 브랜치 작업 완료 -> main 브랜치로 Pull request
브랜칭 전략
로컬 레포지토리와 연결할 유저 정보를 설정
Git branch
Github 이슈와 마일스톤
논의 중 생겨난 하나의 업무 관리 방식 중 하나
Github 리포지토리에 꼭 필요한 파일
CORS 정책이 필요한 이유
Yet Another Markup Language. 사람이 읽을 수 있는 데이터 직렬화 언어
Github 레포지토리에서 바로 소프트웨어 개발 워크플로우를 자동화, 사용자 지정 및 실행 가능케 함
배포 자동화 필요성
CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)
전통적인 IT 조직 구조
개발 프로세스
IAM 기본 설정
배포 - 개발한 서비스를 사용자들이 이용 가능하게 하는 일련의 과정
지금까지 로컬 환경에서 클라이언트와 서버, 데이터베이스를 띄워서 작성한 코드를 구동하고 확인
클라우드 스토리지 - 인터넷 공간에 데이터를 저장하는 저장소
Relational Database Service
Amazon EC2(Elastic Compute Cloud)
기존 방식의 한계
대부분 클라우드 서비스 업체 기본 장점
Drei에서 제공하는 그림자 컴포넌트
shadow
Camera
Light
Texture Maping
MeshReflectorMaterial
Matreial
Geometry의 args 속성
Geometry
도 를 라디안으로 바꾸려면 PI/180
애니메이션
Three.js 는 WebGL과 WebGPU를 wrapping한 라이브러리.
멱집합
최대공약수(Greatest Common Divisor, GCD)
순열 & 조합
Algorithm 구현 Brute-Force
Greedy Algorithm - 거스름돈
Dynamic Programming(DP, 동적 계획법)
Algorithm 구현의 기초
Greedy Algorithm 문제 해결 단계
알고리즘이 수행되는 데에 필요한 메모리의 총량
시간 복잡도
Algorithm
Graph
Tree
반응형 웹
브라우저 렌더링
브라우저
WAI (Web Accessibility Initiative) : 웹 표준을 정하는 W3C에서 웹 접근성을 담당하는 기관
장애인, 고령자 등이 웹 사이트에서 제공하는 정보에 비장애인과 동등하게 접근하고 이해할 수 있도록 보장하는 것
검색 엔진의 작동 방식에 맞게 웹 페이지를 최적화해주는 작업, SEO(Search Engine Optimization, 검색 엔진 최적화)
양한 정보를 여러 사람들과 공유할 수 있는 공간이 ‘웹’
div.qq*10
attribute
시맨틱 태그를 사용해야하는 이유
input type
HyperText Markup Lanuage
HTTP Secure의 약자
HTTP 특징
데이터 주고 받으려고 응답과 요청을 잘 주고 받기 위해 누구나 보기 쉽게 메뉴판을 만들기 위해 표준화
REST(Representational State Transfer)
SSR(Server Side Rendering)
AJAX(Asynchronous JavaScript And XMLHttpRequest)
URL(Uniform Resource Locater)
클라이언트 - 서버 아키텍처(2티어 아키텍처)
HTML의 canvas 태그와 JS를 활용하여 다양한 그래픽 요소 생성 가능
@keyframes
반응형 웹
```css /* 리셋 */ { margin: 0; padding: 0; box-sizing: border-box; border: none; }
프레임워크(framework)
자식 요소 flexbox
부모 요소 flexbox
셀렉터
줄 바꿈이 되는 박스(block) - h1, p
컴포넌트 기능별로 묶어서 제작
가비지 컬렉션
비트맵
프로그래밍 언어마다 문자열을 저장하는 자료형은 다 다르고 용량도 다름
스레드
프로세스
운영체제
Memory
입력장치 출력장치 중앙처리장치 산술/논리 연산 장치(ALU) 제어 장치 레지스터 - CPU의 내부 메모리, CPU에서 사용하는 데이터를 일시적으로 저장하는 장소 저장장치 주기억장치 - 주로 ...
Create React App
유틸리티 타입
Generics
class
Literal Types
타입스크립트 함수
```ts let user: object;
변수의 타입
버튼 테스트
공지사항 만드는 방법
태그 여러 가지 다는 방법
샘플 코드와 “```”
이미지를 넣어보자
마크다운 문법
깃헙 블로그 시작
Lighthouse
나무를 흔들어 잔가지를 털어내듯 불필요한 코드를 제거
캐시 사용하기
HTML, CSS 코드 최적화
최적화 - 주어진 조건으로 최대 효율을 낼 수 있도록 하는 것
미들들웨어(Middleware)는 요청(Request)에 필요한 기능을 더하거나, 문제를 발견하고 밖으로 걷어내는 역할을 한다.
Node.js 환경에서 웹 서버, 또는 API 서버를 제작하기 위해 사용되는 프레임워크 중 하나
SOP(Same-Origin Policy 동일 출처 정책)
GraphQL 구조
REST API의 한계
페이스북에서 개발, 오픈 소스로 제공된 쿼리 언어
기존의 프로젝트에 변화를 주거나 새로운 것을 시도를해보기 위해 리포지토리를 복사하는 것
디렉토리를 만들고 해당 디렉토리에 로컬 Git repository를 생성(git init) local working directory를 git의 관리하에 있게 함
id와 class
HyperText Transfer Protocol HTML과 같은 문서를 전송하기 위한 프로토콜 웹 브라우저와 웹 서버의 소통
UI(User Interface, 사용자 인터페이스)
CR(Carriage-Return)