본문 바로가기

전체 글

yarn berry에 github package 적용하기 yarn berry 에 github packages 적용하기 github packages에 배포하기 package.json 수정 ... // organization or user id "name": "@user_id/package_name", "publishConfig": { "registry": "https://npm.pkg.github.com/" }, "repository": { "type": "git", // 배포할 패키지가 속해 있는 레포의 url "url": "https://github.com/your_repo_url" }, github access token 발급 Github 설정 -> Developer Settings -> Personal access tokens 페이지로 가서 토큰 스코프에.. 더보기
실행컨텍스트 정리 실행컨텍스트 유형 전역 실행 컨텍스트 기본 실행 컨텍스트로써 window 전역 컨텍스트를 생성하고, 이 전역객체를 this에 바인딩함. 함수 실행 컨텍스트 함수가 호출될때 마다 해당 함수에 대한 실행 컨텍스트가 생성됨. eval 실행 컨텍스트 eval 함수에서 실행되는 코드도 실행 컨텍스트를 가짐. eval()은 사용안하는게 좋으니까 생각하지말자.실행 스택 콜스택이라고 불리는 그것 LIFO 구조실행 컨텍스트 생성 과정 생성단계(Creation Phase) Lexical Environment 생성 각 변수(let, const),함수의 식별자에 실제 값, 객체에 대한 매핑이 이루어짐. Lexical Environment 에는 3개의 구성요소가 있음 Environment Record 변수 및 함수 선언이 저장.. 더보기
@RequestMapping 의 비밀 스프링을 사용하면 @RequestMapping 어노테이션을 다음처럼 많이 사용합니다. @RequestMapping("/foo") @RequestMapping(value="/foo") 이거 이상하지 않나요? 왜 이게 동작할까요? spring 문서 를 참조하면 value 는 분명 배열 타입이거든요. value 뿐만 아니라 path 도 그렇구요. 이거 너무 이상한데 왜 다들 당연하게 사용하는걸까요? 제가 한동안 자바 공부를 게을리했는데 그동안 자바가 발전해서 String 값을 String[] 에 할당하면 업캐스팅이라도 된걸까요? 그럴리가 없습니다. ㅎㅎㅎ 자바 Language Specification에서 어노테이션에 대한 특별한 문법인것 같네요. Language Specification section 9.7... 더보기
문자열 해싱 프로그래머스에서 다음과 같은 해쉬 관련 문제를 만났다. 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 >있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 >접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 >매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 >false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다... 더보기
선언형 프로그래밍이란 무엇일까? 선언형 프로그래밍, 선언적 프로그래밍이 무엇일까? 요즘 특히 많이 들리는 용어인데, 정확하게 어떤 의미인지 몰라서 개념을 정확하게 정리해보고자 한다. 우선 사전에서는 어떻게 정의되고 있는지 알아보았다. 선언형, 선언적 두가지 용어가 혼용되고 있는것을 자주 볼 수 있는데, 두가지 모두 같은 뜻으로 원문으로는 declarative 이고 번역차이라고 판단된다. 위키백과에 따르면 두 가지 뜻으로 통용되고 있다고 한다. 프로그램이 어떤 방법으로(How) 해야 하는지를 나타내기 보다 무엇과(What)과 같은지를 설명하는 경우에 "선언형" 이라고 한다 프로그램이 함수형 프로그래밍 언어, 논리형 프로그래밍 언어, 제한형 프로그래밍 언어로 작성된 경우에 "선언형" 이라고 한다. 선언형 프로그래밍에 대해 검색을 하다보면 .. 더보기
타입 스크립트에서 배열과 튜플 interface TestType = { prop1 : string; ... } 위 타입에 대해 TestType[] 과 [TestType] 은 다른 타입이다. TestType[] 은 배열 [TestType] 은 튜플 이다. const testType : TestType[] = [] //ok 그리고 배열은 기본적으로 빈 배열 할당이 가능함. 더보기
Redux Style Guide 이 글은 https://redux.js.org 의 Redux Style Guide 페이지를 번역한 글입니다. 오역에 주의 바랍니다. 소개 이글은 리덕스 코드를 작성하기 위한 공식 스타일 가이드입니다. 리덕스 어플리케이션을 작성하기 위한 접근 방법, 권장 패턴, 모범 사례를 소개합니다. 리덕스 코어 라이브러리나 대부분의 리덕스 문서에는 이런 지침이 없습니다. 리덕스를 사용하는 방법은 많지만, 항상 올바르게 사용하는 방법은 없었습니다. 하지만, 오랜 경험상 확실히 특정 접근법이 더 좋은 일부 주제들이 있다는게 보여졌고, 많은 개발자들이 고민을 줄이기 위해 공식적인 지침을 요구하였습니다. 이를 염두하고, 에러, 시간낭비, 안티패턴을 피하도록 권장사항 목록을 정리하였습니다. 다양한 환경과 프로젝트마다 요구사항이.. 더보기
리셀렉트에 대한 이해 해당 글은 리셀렉터에 대한 이해를 돕고자 reselect 깃헙 페이지의 일부를 번역한 글입니다. Example 메모된 셀렉터(Memoized Selectors) 대한 필요성 해당 섹션의 예제는 리덕스의 Todos List 예제를 참고합니다 containers/VisibleTodoList.js import { connect } from 'react-redux' import { toggleTodo } from '../actions' import TodoList from '../components/TodoList' const getVisibleTodos = (todos, filter) => { switch (filter) { case 'SHOW_ALL'.. 더보기