본문 바로가기

전체 글

(237)
크로스 브라우징(Cross browsing) 크로스 브라우징 이란? 웹 표준에 따라 서로 다른 OS 또는 플랫폼에 대응하는 것을 말한다. 브라우저별 렌더링 엔진이 다른 상황 등 어떠한 상황속에서도 문제 없이 동작하게 하는 것을 목표로한다. ●크로스 브라우징이 발생하는 이유 - 웹 브라우저의 종류를 살펴보더라도 크롬, 사파리, 인터넷 익스플로러 웨일, 파이어폭스 등등 매우 많은 브라우저들이 존재한다. 이 브라우저들은 W3C라는 국제 웹 표준화 기구에서 제공하는 가이드라인을 따라서 동작하게 되나, W3C에서 제공하지 않은 가이드라인에 대한 디테일한 내용들은 각각의 상황에 맞게 구현되어있기 때문에 각각의 렌더링 엔진이 다르기 때문에 발생을 한다. ● 해결법 - 기능탐지를 이용하여 해당 기능이 해당 브라우저에 존재하는지를 확인하는 방법을 사용하거나 전체적..
[프로그래머스] 위장 - 파이썬 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clo..
[프로그래머스] 전화번호 목록 - 파이썬 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입..
[프로그래머스] 정수 삼각형 - 파이썬 정수 삼각형 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 입출력 예 triangleresult [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 풀이...
[프로그래머스] 입국심사 - 파이썬 입국심사 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항..
[JavaScript] - var, let, const ● var, let, const 자바스크립트의 변수 선언은 var로만 가능했었으나, ES2015(ES6) 부터 let과 const가 추가되었다. let은 변수의 개념, const는 상수의 개념으로 생각하면 된다. 우선 var, let, const의 차이점은 5가지가 있다. ○ 중복선언 가능 여부, 재할당 가능 여부 중복 선언 재할당 var O O let X O const X X ○ 변수 스코프 유효 범위 - var: 함수 레벨 스코프로 함수 내부에 선언된 변수만 지역변수로 한정하며 나머지는 모두 전역변수로 간주한다. - let, const: 블록 레벨 스코프로 함수 내부뿐만 아니라 if, for문 등의 코드 블럭에서 선언된 변수도 지역변수로 취급한다. ○ 변수 호이스팅 방식 var 에는 변수 호이스팅이 ..
CORS(Cross-Origin Resource Sharing) CORS란? 교차 출처 리소스 공유(CORS)는 추가적인 HTTP header를 이용해서 애플리케이션이 다른 origin의 리소스에 접근할 수 있도록 하는 메커니즘을 뜻한다. 하지만 다른 Origin에서 내 리소스에 함부로 접근하지 못하게 하기 위해 사용된다. ●출처(Origin) - Origin이란 url 구조에서 프로토콜과 호스트, 포트를 합친 것을 말한다. ● 동일 출처 정책 - 보통 포스트맨으로 API를 테스트하면 정상 동작을 하는데, 브라우저에서 API를 호출하면 CORS policy 오류가 나는 경우가 있다. 그 이유는 브라우저가 동일 출처 정책(Same-Origin Policy: SOP)를 지켜서 다른 출처의 리소스 접근을 금지하기 때문이다. - 동일 출처 정책을 사용함으로써 얻는 장점은 X..
[JavaScript] - 클로저(Closure) ● 클로저 클로저란 내부함수가 외부함수의 컨텐스트에 접근할 수 있는 것을 가르킨다. - 쉽게 설명하면 함수 내에서 함수를 정의하고 사용하면 클로저라고 한다. - 클로저는 외부함수의 지역변수, 인자 등을 외부함수가 종료된 이후에도 사용이 가능한다. 이러한 변수를 자유변수라고 한다. 소스코드로 살펴보면 다음과 같다. 클로저 위 코드를 살펴보면 closure() 는 함수를 반환하고, 반환된 함수는 closure() 내부에서 선언된 변수를 참조하고 있다. 이렇게 참조된 변수는 함수 실행이 끝나도 사라지지 않고 여전히 옳바른 값을 반환하는 것을 알 수 있다. ● 클로저를 통한 은닉화 클로저를 사용하면 외부에서 변수에 직접 접근하는 것을 제한할 수 있다. 즉 변수를 객체지향의 private 처럼 사용할 수 있다. ..