frontend 32

TypeScript 핵심 가이드: 입문부터 활용까지

TypeScript로 견고한 코드 작성하기: 타입의 힘을 활용한 모던 개발 가이드1. TypeScript란 무엇인가?1.1 TypeScript의 탄생 배경과 역사JavaScript는 웹 개발의 핵심 언어로 자리잡았지만, 대규모 애플리케이션 개발에서 여러 한계점을 보였습니다. 이러한 문제들을 해결하기 위해 Microsoft의 Anders Hejlsberg(C# 설계자)가 주도하여 2012년 TypeScript를 개발했습니다.이러한 문제를 해결하기 위해 Microsoft는 2012년 TypeScript를 발표했습니다.타입 시스템의 부재JavaScript는 동적 타입 언어이기 때문에 런타임에서만 타입 오류를 발견할 수 있었습니다이는 버그 발견이 늦어지고, 코드 품질 관리가 어려워지는 원인이 되었습니다대규모 개..

TypeScript 2025.02.21

리액트(React) - useState 내부 구현과 동작 원리(feat : 클로저)

리액트에서 함수형 컴포넌트 이전 클래스형 컴포넌트 사용시에는 상태를 지역변수 state에 정의하고 상태를 변경할 메소드 안에 setState 메소드를 넣어서 상태를 변경 했다.그럼 왜 state변수를 직접 변경하지 않고 setState를 통해서 했는지는 해당 메소드를 사용해서 리액트 컴포넌트에 상태변경에 대해서 알려주고 리렌더링을 요청 하기 위해서다.  함수형 컴포넌트 리액트 함수형 컴포넌트에서는 useState 라는 React Hooks를 사용해서 상태를 관리한다.해당 훅은 초기값을 받아서 [state, setState] 의 배열을 반환하며 [상태, 상태 변경 핸들러] 로 보면 된다. 함수형 컴포넌트는 렌더가 필요 할 때마다 함수를 재호출 하는데 렌더링은 곧 함수 호출이다.함수가 재호출 되었을때 이전 ..

React 2023.09.25

SOP(same origin policy)-동일 출처 정책,CORS(cross origin resource sharing)-교차 출처 리소스 공유

SOP(same origin policy)-동일 출처 정책 CORS(cross origin resource sharing)-교차 출처 리소스 공유 여기서 origin 은 protocol , host, port SOP 어떤 출처(protocol , host, port = origin)에서 불러온 문서, 스크립트, 리소스가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 브라우저 보안 방식. 예를 들어 SOP가 없다면 클라이언트가 우연히 악성 사이트에 접속해서 해커가 만든 스크립트가 실행되어 클라이언트의 개인 정보나 다른 민감한 정보가 있는 사이트에 요청을 보낸 뒤 그 응답 값을 다시 해커 서버로 보내 개인 정보를 탈취할 수 있게 된다. 하지만 SOP 정책으로 인해 해커의 스크립트 출처와 요청을 받..

Server , etc 2022.03.31

Javascript <자바스크립트> this

this this 는 함수가 호출되는 방식에 따라서 동적으로 결정된다. 1. 일반 함수에서 this 는 전역 객체인 window와 바인딩 된다. console.log(this); //window{...} function a (){ console.log(this) } a(); //window{...} 2. 메소드 안에서 this 는 메소드를 가지고 있는 오브젝트(객체)에 바인딩 된다. let x = { data: "oh", a : function(){ console.log(this) } } x.a(); // { data:"oh", a: f } 3. 생성자 함수로 호출시 생성자 함수가 생성할 객체에 바인딩 된다. function name() { this.first = "oh", this.last = "ahh..

JavaScript 2022.01.27

프론트 엔드(front-end)가 알아야할 내용들

브라우저가 웹 페이지를 랜더링 하는 과정 -DOM(Document Object Model)은 웹 페이지에 대한 인터페이스입니다 브라우저 렌더링 과정은 사용자가 페이지에 접속하여 HTML을 서버에서 내려받게 되면 이를 브라우저 렌더링 엔진에서 파싱(처리) 한다. 이렇게 "DOM 트리" 를 만들고, link 태그를 통해 CSS 파싱을 해서 "CSSOM 트리"를 결합한 것이 "렌더 트리" 가 되고, 레이아웃 작업에서 엘리먼트가 그려질 위치를 계산하고 페인트 단계에서 화면에 그려준다. 이 과정을 진행하다가 자바스크립트를 만나면 런타임 환경에 수행권한을 넘겨 자바스크립트를 파싱을 완료 할때까지 DOM 파싱은 중단된다. 호이스팅이란 함수 안에 있는 선언들을 모두 끌어올려 해당 함수 유효 범위의 최상단에 선언된거 처..

Server , etc 2022.01.12

Javascript <자바스크립트> call by value - reference. {콜바이벨류.콜바이레퍼런스}

Javascript call by value - reference. 평가 전략 (evaluation strategy) call by value.의미와 같이 값이 그대로 복사되는 것을 의미한다. 자바스크립트(JS)에서는 원시 데이터/원시 값의 경우 값의 복사 call by value가 발생하게 됩니다. call by value.var i = 1;function somefunc(a) { a = a + 1; return a;}somefunc(i); // i의 값을 파라미터로 값만 복사해서 넘긴다. 복사된 값을 넘기기 때문에 원본은 바뀌지 않는다.console.log(i) // 결과 1i의 값을 함수의 인자로 파라미터로 넘길때 값을 복사해서 넘기기 때문에 원본의 값은 변하지 않는다.  call by..

JavaScript 2021.12.22

Javascript <자바스크립트> Map 메소드 사용하기.

Javascript Map map은 배열을 순회하면서 실행되는 콜백함수의 결과값들을 새로운 배열로 반환한다. Array(배열) 에 map 메소드를 사용해서 배열 * 2 값을 만들기. let array = [1, 4, 9, 16]; let result = array.map(x => x * 2); // 배열에 map 메소드를 사용해서 리턴값으로 배열의 원소 *2값을 result 에 할당한다. //화살표함수( 전통적인 함수표현(function)의 간편한 대안) console.log(array) //map 은 원본값은 건드리지 않고 새로운 배열을 생성하여 리턴한다. [1, 4, 9, 16] console.log(result) // 새로운 배열을 생성하여 result의 할당한 결과값. [2, 8, 18, 32] ..

JavaScript 2021.12.20

Javascript <자바스크립트> 재귀함수, 즉시실행함수.

Javascript 재귀 함수, 즉시 실행 함수. 재귀 함수와 즉시 실행 함수. 재귀 함수는 말 그대로 자기가 자기 자신을 호출하고 특정 조건이 될 때까지 계속해서 호출하고 조건이 충족되면 함수를 빠져나온다. 재귀 함수를 사용할 때는 함수를 끝내는 종료 조건이 있어야 한다. 없으면 무한으로 계속해서 돌기 때문이다. 일부 함수는 반복문으로 구현 가능하지만 그렇지 않은 경우도 있는데 tree 구조의 노드 전체를 확인할 때 재귀를 사용하면 적은 코드로 확인 가능하고 직관적이다. 하지만 재귀 함수를 호출할 때마다 스택을 소비하기 때문에 반복문에 비해 메모리 소비 또는 시간이 더 걸리수 있다. (스택은 나중에 포스팅) 오늘은 재귀 함수중에서 팩토리얼 : 수학적 용어로 계승이란 뜻으로 1부터 n까지의 정수를 곱하는..

JavaScript 2021.12.16

Javascript <자바스크립트> 연습 문제 풀이(split, array, for)

Javascript 연습 문제 풀이(split, array, for) split, array, for을 이용한 간단한 문제 풀이해보기. 문자열을 split 로 하나씩 자르고 숫자로 더하고 평균 구하기. let data = '5, 4, 10, 2, 5'.split(',') // '5, 4, 10, 2, 5' 는 하나의 문자열 // split 으로 문자열을 일정한 구분자로 잘라서 배열로 저장 let result =0; // 결과값을 담을 변수 선언과 0 할당. for (let i of data){ // 스플릿된 문자열을 for of 배열을 순환한다. result += parseInt(i)/data.length; // 순환 되면서 정수로 반환한 값을 배열의 길이만큼 나누고 결과값에 더해진다. } // 하지만 ..

JavaScript 2021.12.14

Javascript <자바스크립트> 반복문, while문

Javascript 반복문, while문 for 문에 이어서 반복 문중 하나인 while문을 실습하면서 이해 하기. while 문으로 짝수만 출력하기 let i = 0; // i 에 0 을 할당 해준다. while (i < 100){ // 0 부터 100 미만까지 조건문을 반목한다. console.log(i); // i 를 출력 해주고 i += 2; // i 의 2를 더해고 다시 위로 올라가서 출력해주고 98이 되면 마지막으로 한번더 돌고 100을 // 찍고 while 문을 종료한다. } while 은 ~~ 동안 반복하는 것으로 조건을 충족할 때까지 반복하고 종료한다. while 문으로 짝수값만 더하기 let i = 0; // i 에 0 을 할당해준다. let result =0; // 최종 결과값을 담을..

JavaScript 2021.12.13

손코딩 하기 // <JavaScript>

손 코딩 손 코딩은 에디터의 자동완성이나 도움없이 손으로 써내려가는 코드이며 처음부터 손으로 써보고 잘 구현되는지 확인해보거나 혹은 이미 에디터로 작성한 코드들을 이해하고 습득하기 위해서 클론(?) 손코딩 등 하는 사람의 용도와 목적에 따라서 응용하면서 하면 될꺼같다. 수업의 일환으로 중간중간 이해가 안 되는 부분들을 손 코딩을 하는 시간을 가졌는데 손으로 써보니 에디터에서 쓴걸 하나씩 보면서 이해하는 것보다 좀 더 이해가 잘되는 거 같아서 뭔가 막히거나 어려울 때 1시간 정도씩 써보고 있다. 수업 시간 때 배운 코드들 중에서 어렵거나 잘 이해가 안 되는 코드들은 3~6번씩 써보고 이번에 한건 이미 완성된 자바스크립트 코드인데 예전에 만들었던 페이지의 자바스크립트 부분이고 그때는 아직 배우지 않은 상태라..

private 2021.12.09

Javascript <자바스크립트> 반복문, for문 .2

Javascript for문 문제풀이(실습해보기) 저번 포스팅에 이어서 포문으로 풀어 볼 수 있는 문제(난이도 없음)를 풀어볼 건데 문제라기보다 그냥 for문을 이해하기 위한 실습 정도라고 생각하면 될 거 같다. 글씨 거꾸로 순차적으로 출력하기. let s = 'hello world' // s 라는 변수에 텍스트를 할당한다. for (let i = s.length; i >= 0; i--) { //1. 초기값 에 텍스트의 길이만큼을 할당하고 //2. i 가 0 보다 크거나 같으면 반복문을 마친다. //3. i-- 로 1씩 감소된다. //// 텍스트의 길이가 10이고 1씩 감소되면서 반복된다. console.log(s[i]) // 초기값의 할당된 텍스트의 길이가 10이고 할당된 텍스트를 인덱스로 봤을때는 9..

JavaScript 2021.12.07

Javascript <자바스크립트> 반복문, for문

자바스크립트 js 반복문 반복문에는 여러가지 방법으로 방법 문들이 존재하다. 자바스크립트에서 지원하는 반복문 for 문 do...while 문 while 문 레이블 문 break 문 countinue 문 for..in 문 for...of 문 for 문을 활용해서 다양한 값 구해보기. 오늘은 많은 반복문들 중에서 for 문을 활용하여 몇 가지 기초적인 실습 예제를 해볼 예정 인다. for 문을 처음 이론으로 들었을 때는 그냥 원하는 걸 반복해서 결괏값을 얻는 아주 쉽게 정의된 느낌이었는데 역시나 실제로 코드로 뭔가 써보니 나한테는 모든 부분들이 생소하고 어려웠던 거 같다. 100까지의 3의 배수와 5의 배수를 더한 값을 구한다. let result = 0; for (let x = 0; x < 101; x+..

JavaScript 2021.12.06

Javascript <자바스크립트> 변수 , 선언

Javascript 변수 어플리케이션에서 값에 상징적인 이름으로 변수를 사용합니다. 변수명은 식별자(identifier)라고 불리며 특정 규칙을 따릅니다. JavaScript 식별자는 문자, 밑줄(_) 혹은 달러 기호($)로 시작해야 하는 반면 이후는 숫자(0-9)일 수도 있습니다. JavaScript가 대소문자를 구분하기에, 문자는 "A"부터 "Z"(대문자)와 "a"부터 "z"(소문자)까지 모두 포함합니다. ISO 8859-1 혹은 Unicode 문자(가령 å 나 ü)도 식별자에 사용할 수 있습니다 또한 Unicode escape sequences 도 식별자에 문자로 사용할 수 있습니다. 자바스크립트에서의 변수와 값(데이터)은 각각의 메모리상의 저장되고 변수는 할당된 값(데이터)를 가르킨다(바라본다)...

JavaScript 2021.12.01

오늘의집 조은님의 Front-end(프론트엔드) 특강 수업!

오늘의 집 시니어 개발자 조은님의 특강. 오늘은 멋사에서 준비한 많은 특강들 중에서 오늘의 집에서 시니어로 계신 프론트엔드 개발자 조은님의 특강에 대해서 짧게 포스팅합니다. 일단 2016 년 조은님이 본인이 생각했을 때 프론트엔드(front-end)개발자 로써 알아야 하는 기초지식을 보면 이렇게 많다... 이게 기본지식이며 이외에도 많다는 걸 알 수 있는데 나는 지금 HTML , CSS 그리고 약간의 sass와 엊그제부터 시작된 Js (자바스크립트) 마지막으로 아주 얇은 지식들이다... 앞길이 멀어 보이지만 각설하고 특강에서 나온 내용들을 요약한 내용들은 소개하면 1. 개발만 잘하는 개발자는 좋은 개발자가 아니다. 문제를 인식하는 능력 (문제 정의 능력) 문제를 해결하는 능력 협업을 위한 그리고 대인관계..

private 2021.11.29
반응형