JS

문제 https://school.programmers.co.kr/learn/courses/30/lessons/181905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 특정 문자를 잘라낸 후 뒤집어 주고, 그 문자의 앞, 뒤를 잘라내서 합쳐주었다. function solution(my_string, s, e) { const reverseStr = my_string .slice(s, e + 1) .split("") .reverse() .join(""); return my_string.slice(0, s) + reverseStr + my_string.s..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181912 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 우선 배열을 k부터 시작해서 s 길이까지 잘라내야 해야한다. substr을 사용하면 길이만큼 잘라낼 수 있지만, 사용을 지양하는 추세이기 때매 slice로 잘라내었다. (substr은 하나 이상의 바람직하지 않은 특징을 갖고 있으며 사용처가 없어질 경우 명세에서 제거될 예정 -ECMA-262) 시작부터 길이만큼 잘라내기 위해서는 시작 위치에 그 길이를 더 해주면 된다. slice는 두..
1. Interface란? 인터페이스는 객체, 클래스, 함수 타입을 지정하는 또 다른 방법 중 하나이다. //객체 타입을 지정하는 여러가지 방법 let person: { name: string; age: number } = { name: 'John', age: 30 }; type TPerson = { name: string; age: number }; let person: TPerson = { name: 'John', age: 30 }; interface IPerson { name: string; age: number; } let person: IPerson = { name: 'John', age: 30 }; 보통 인터페이스는 I 를 붙여 명명한다. interface I인터페이스_이름 { 속성?: 타입;..
1. Intersection Type Intersection Type(교차 타입)은 TypeScript에서 두 개 이상의 타입을 합치는 방법 중 하나이다. `& 연산자`를 사용하여 여러 타입을 하나로 합친다. 합쳐진 타입은 모든 타입의 특성을 가지게 된다. interface Car { brand: string; speed: number; } interface Electric { battery: number; } type ElectricCar = Car & Electric; const myCar: ElectricCar = { brand: 'Tesla', speed: 200, battery: 75, }; //이렇게도 가능 type PositionX = { x: number }; type PositionY =..
어떤 값에 대해 불변성을 갖도록 만들어주고 싶다면, readonly 타입으로 보호장치를 설정해 줄 수 있다. 타입스크립트에서 readonly 키워드는 변수, 객체, 배열 등에 사용되며 해당 요소를 읽기 전용으로 만든다. 값을 할당한 후에는 값을 변경할 수 없게 된다. (어디까지나 에디터 에러일 뿐 실제 자바스크립트 파일은 변경) type Player = { //대문자로 만들기 readonly name: string, //읽기 전용으로 설정 } const nemo: Player = { name: "nemo", }; nemo.name = "다른이름" //오류, 읽기전용이라 변경 불가 const numbers: readonly numbers[] = [1,2,3] numbers.push(1) //오류 let a..
1. Type Aliases (별칭) Type Aliases(타입 별칭)는 TypeScript에서 타입을 새로운 이름으로 지정할 수 있다. 코드를 더 읽기 쉽고 재사용성이 높게 만들 수 있어 주로 복잡한 타입이나 반복되는 타입 정의를 간결하게 표현할 때 유용하다. type Animal = string | number | undefined; let 동물 :Animal; type Age = number type Player = { //대문자로 만들기 name: string, //별칭 만들기 age?: Age, //타입 지정한걸 가져오는것도 가능 } //별칭을 그대로 지정해주기 const nemo: Player = { name: "nemo", //age: 12 }; //대문자 또는 TAge 이런식으로 변수명 ..
객체에 대한 타입을 지정해야하는 경우, const 이름: PositionType = { name: "김사과", age: "12", }; 각각 해당 key와 value에 맞는 타입을 지정해줄 수 있다. //타입으로 선언 type PositionType = { name: string; age: string; }; const 이름: PositionType = { name: "김사과", age: "12", }; //인터페이스로 선언 interface PositionType { name: string; age: string; } const 이름: PositionType = { name: "김사과", age: "12", }; 하지만 만약 지정해야 되는 타입이 너무 많고, 모든 key와 value의 타입이 동일하다면..
어떤 특정 값을 찾아야 한다면 해시테이블 구조를 고려해보자.배열은 순서가 중요한 경우에 유용할 수 있으나, 해시 테이블은 키-값 쌍을 다룰 때 더 빠르게 검색할 수 있는 장점이 있다.// 배열을 이용한 방식let countriesArray = ["a", "b", "c", "d"]; // 하나씩 배열을 돌면서 찾음배열을 사용한 방식은 각 요소를 찾을 때 O(N)의 시간 복잡도가 소요된다.배열이 매우 크거나 효율적인 검색이 필요한 경우에는 비효율적일 수 있다. // 해시 테이블을 이용한 방식let countriesHash = { a: true, b: true, c: true, d: true,}; countriesHash["a"]; // true // 단번에 찾을 수 있음해시 테이블을 사..
· JS/React.js
1. 무한스크롤이란? 무한스크롤은 웹 페이지에서 사용자가 스크롤을 할 때 새로운 콘텐츠가 끊임없이 로드되어 나타나는 디자인 패턴을 의미한다. 페이지 전환 방식과는 달리 사용자는 페이지 이동없이 계속해서 새로운 정보에 접근할 수 있다. 주로 소셜 미디어 피드, 뉴스 웹사이트, 온라인 쇼핑몰 등에서 널리 사용되고 있다. 2. 무한스크롤의 동작방식 무한스크롤은 스크롤의 길이를 감지해, 스크롤이 하단에 도달하면 자동으로 데이터를 불러오는 방식으로 동작한다. 스크롤이 내려가는 동시에 새로운 데이터를 패칭하기 때문에 사용자는 끊임없이 콘텐츠를 접할 수 있다. 3. 무한스크롤의 이점 성능 최적화: 한 번에 많은 양의 데이터를 가져오지 않고, 필요한 만큼만 동적으로 불러와서 효율적인 성능을 유지할 수 있다. 이는 초기..
· JS/Library
1. 쿠키 우리가 흔히 사용하는 웹 사이트들은 HTTP 프로토콜을 이용하여 통신한다. HTTP는 비연결성 특징을 가지고 있어 항상 연결된 상태가 아니라, 필요할 때마다 요청을 보내고 응답을 받는 방식이다. 이러한 특성으로 인해 웹 브라우저는 사용자의 상태를 유지하고 관리하기 위해 '쿠키'라는 데이터를 활용한다. 예를 들어 웹 서버로 로그인 요청을 보내면, 서버는 로그인 요청에 대한 응답과 함께 브라우저에서 저장할 정보를 보낸다. 브라우저는 그 정보를 쿠키로 저장해 두었다가 다음에 웹 서버에 연결할때 저장해 두었던 쿠키를 송신함으로써 서버는 연결을 시도하는 상대가 누구인지 식별할 수 있다. 쿠키는 사용자 인증용도 뿐만 아니라 언어 정보, 야간모드, 사용자 팝업창 설정( 오늘 하루동안 열지않음) 등 다양한 ..
빔네모
'JS' 카테고리의 글 목록 (9 Page)