분류 전체보기 753

[REACT] useCallback, React.memo로 함수 재사용, 컴포넌트 리렌더링 방지를 통한 최적화 작업 하기 (수정 필요)

useCallback으로 이전에 만들었던 함수 재사용 하기 컴포넌트가 리렌더링 될때마다 새로운 함수를 계속 만들고 있는 문제 -> 함수를 새로 만드는 것은 메모리도 cpu도 많이 차지하지는 않기 때문에 그 자체만으로 부하가 걸리진 않는다. 그럼에도 한번 만든 함수를 재사용할 수 있다면 재사용 하는게 좋다. 사용법 const onChange = useCallback( e => { const { name, value } = e.target; setInputs({ ...inputs, [name]: value }); }, [inputs] ); 이렇게 useCallback으로 감싸준다 그러면 deps에 넣은 값이 바뀔때만 함수가 새로 만들어진다. 여기서는 inputs가 바뀔때만 함수가 새로 만들어진다. 이렇게만 ..

WEB/REACT 2021.07.31

[TIL] 20210730 양방향 데이터 전달을 리덕스로 관리하자!

문제 발생 책 검색을 구현 리뷰할 책을 선택하면 -> 책 검색 모달이 뜨고 -> 책 검색 모달에서는 책들이 뜨고 -> 선택하면 화면에 뜬다. 이것을 구현하는데 모달을 열고 닫고하는 state를 부모에서 자식으로 그 자식으로 계속 넘기고 있었다. 이것은 리액트에서 지양하는 데이터 흐름이다. 부모에서 자식으로 흐르는 단방향 데이터 흐름을 사용한다. -> 단방향 데이터 바인딩에 관한 포스팅 해결방안 - 리덕스로 전역으로 상태관리! 리덕스로 모달을 열고 닫는 액션을 만들어서 모달 열고 닫는 state를 부모에서 자식으로 넘겨주지 않더라도 리덕스로 관리하였음!

TIL 2021.07.30

[TypeScript] 타입스크립트 타입 명시, 인터페이스를 타입으로 사용하기

참고: 땅콩코딩 1. 타입명시 syntax 변수에 타입 명시하기 let studentId:number = 12345; let studentName:string = "hyeonju"; let age:number = 21; let gender:string= "woman"; let subject:string ="fashion"; let courseCompleted:boolean = false; function에 리턴값 지정 타입스크립트에게 더욱 더 정확하고 자세한 정보를 주는 것이 좋다. function의 반환값을 지정해줄 수 있다. 아무것도 리턴하지 않는다면 void를 주면 된다. 지금은 객체를 리턴할 것이므로 object를 썼다. 하지만 위에서 말했듯 자세한 정보를 주는 것이 좋다. 반환값과 유사한 형태로..

WEB/TypeScript 2021.07.29

[TypeScript] 타입스크립트의 타입 추론. type inference

앞의 게시물 보고 오기 타입 스크립트는 우리가 할당한 값에 의거하여 타입을 추론한다. 그래서 애초에 number로 할당했던 변수에 string을 새롭게 할당하려고 하면 오류가 난다. 위의 function에서도 lostPoints의 타입을 지정해주지 않았지만 hover를 해보면 return값을 분석하여 lostPoints가 number일것이라고 추론하는 것을 볼 수 있다 . 매우 똑똑하다 참고 : https://www.youtube.com/watch?v=rwqqhvR353A&list=PLJf6aFJoJtbUXW6T4lPUk7C66yEneX7MN&index=3

WEB/TypeScript 2021.07.29

[TypeScript] 타입스크립트란 ? vscode에서 개발 환경 설정하기

타입스크립트(TypeScript)란? 자바스크립트의 supterset인 오픈소스 프로그래밍 언어. 마이크로 소프트에서 개발, 유지 하고 있음 엄격한 문법을 지원. 자바스크립트 엔진을 사용하여 커다란 애플리케이션을 개발할 수 있게 설계된 언어. 모든 운영체제, 모든 부라우저, 모든 호스트에서 사용가능한 오픈 소스 자바스크립트의 모든 기능을 포함, 자바스크립트에 포함되지 않는 새로운 기능이 있다. 왜 타입스크립트를 사용하는가? 자바스크립트를 사용할때보다 버그를 줄이고 유지보수가 쉽다. 질 좋은 코드를 만들 수 있다. 특징 1. 변수를 정의할 때 데이터 타입 지정 가능 예측가능하며 디버깅하기 쉽다. 2. 객체 지향적이다. 3. 컴파일 타임 오류를 잡을 수 있다. 개발환경 설정하기 1. 준비 vscode, no..

WEB/TypeScript 2021.07.29

[TIL] 20210729 타입스크립트 공부

■ 타입스크립트 공부 2021.07.29 - [WEB/TypeScript] - [TypeScript] 타입스크립트란 ? vscode에서 개발 환경 설정하기 [TypeScript] 타입스크립트란 ? vscode에서 개발 환경 설정하기 타입스크립트(TypeScript)란? 자바스크립트의 supterset인 오픈소스 프로그래밍 언어. 마이크로 소프트에서 개발, 유지 하고 있음 엄격한 문법을 지원. 자바스크립트 엔진을 사용하여 커다란 애플리 sso-feeling.tistory.com 2021.07.29 - [WEB/TypeScript] - [TypeScript] 타입스크립트의 타입 추론. type inference [TypeScript] 타입스크립트의 타입 추론. type inference 앞의 게시물 보고 오..

TIL 2021.07.29

[TIL] 20210728 리덕스 모듈 제작

백엔드에서 준 스웨거를 보고 리덕스 모듈을 제작했다. https://app.swaggerhub.com/apis-docs/seungbin0508/bns/1.0.0 Build, Collaborate & Integrate APIs | SwaggerHub app.swaggerhub.com 오늘도 우리팀은 빠르게 모듈을 제작하고 코드리뷰도 하면서 재밌는 하루를 보냈다. 이번 코드 리뷰는 인덴테이션을 맞췄는데 깔끔한 정렬에서 오는 마음의 안정.. 좋았다. 아직 서버 배포는 안됐다고 해서 리덕스 모듈만 일단 만들어놨다. 나는 리덕스 모듈을 가지고 서버에서 값을 받아오고 화면에 띄워주는거 댓글을 쓰면 댓글이 반영되고, 게시글이 쓰면 반영되고 이런 화면의 변화가 무척 재밌다! 빨리 서버와 연결해서 데이터 받아오고 보내고..

TIL 2021.07.28

[Git] git flow사용하기 , git flow란 무엇인가?

1. Git 이란? git은 컴퓨터 파일의 변경 사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 오픈소스 분산 버전 관리 시스템이다. 코드 관리와 프로젝트 변경사항을 지속적으로 추적하기 위해 사용된다. 2. 깃플로우란? 각자 팀에 맞는 개발 환경에 따라 변형해서 사용하는 것이 좋다고 한다. 3. Git-flow의 브랜치 master: 제품으로 출시(배포)할 수 있는 브랜치 develop: 다음 버전을 개발하는 브랜치 feature: 단위별로 기능을 개발하는 브랜치 (완료되면 develop 브런치와 병합) release: 배포 전 (master와 병합 전) QA를 통해 버그를 찾아내기 위한 브랜치 hotfixes: master브랜치에서 발생한 버그를 긴급하게 수정하는 브랜치 지..

Git 2021.07.27

[실전프로젝트] 0723~0728 항해 99 실전 프로젝트 일기

1일차 2021.07.23 금 첫만남! 항해 99측에서 이제까지 실전 프로젝트 팀 구성에 대한 이야기를 그 전까지 해주지 않았다. 그리고 자율적이라는 것을 약간씩 흘렸었기 때문에 사람들이 저마다 잘맞는 사람들과 팀을 하기로 약속을 했나보다. 나는 같이 하고 싶었던 한 사람과 같이 하기로만 했었다. 그런데 발제때 보니 항해에서 랜덤으로 조를 짜놓았던 것이다. 모두에게 중요한 실전프로젝트였던 만큼 사람들의 반발이 심해서 결국에는 팀을 정하는 방법을 달리 하게 되었다. 그리고 팀장으로 지원한 20명 중에 3명에게 1지망, 2지망, 3지망으로 지원하고 팀장은 그 중 2명을 뽑고, 나머지는 항해 99에서 정해준 대로 팀을 정하게 되었다. 그래서 나는 결국 같이 하기로 한 사람과 팀이 되었고 분위기 좋은 팀을 만나..

프로젝트 2021.07.27

[TIL] 20210727 뷰 제작

제플린으로 디자이너분이 준 와이어프레임을 가지고 뷰를 제작했다. https://app.zeplin.io/project/60fc2fc5b30efb14a323bfd2 Zeplin A structured workspace to publish designs, where the entire team can collaborate to ship beautiful products together zeplin.io 디자인을 하는 것 자체가 되게 어려웠는데 이렇게 디자이너분이 같이 있어서 기본적으로 와이어프레임도 다 짜주니까 CSS하는 시간이 정말 엄청 줄어서 좋았고, 겉으로 보기에 엄청 간단한 뷰인데 촌스럽지 않고 세련됐다는 점이 신기했다. 역시 디자이너는 다르다. 이게 디자인 요소를 넣지 않고 그냥 와이어프레임으로 준..

TIL 2021.07.27