일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- var
- condition
- scss
- 앙상블
- C#
- property
- webpack
- type
- leetcode
- bash
- VUE
- vue.js
- Clone
- docker
- C++
- npm
- security
- nginx
- git
- generic
- loop
- TypeScript
- machine learning
- vuetify
- BOJ
- Python
- AI
- JavaScript
- dotenv
- 보안
- Today
- Total
목록분류 전체보기 (162)
ice rabbit programming
공식 문서 설명 : router.vuejs.org/kr/guide/essentials/history-mode.html HTML5 히스토리 모드 | Vue Router HTML5 히스토리 모드 vue-router의 기본 모드는 hash mode 입니다. URL 해시를 사용하여 전체 URL을 시뮬레이트하므로 URL이 변경될 때 페이지가 다시 로드 되지 않습니다. 해시를 제거하기 위해 라우터의 router.vuejs.org vue는 SPA로, 처음에 모든걸 받아서 내부 router를 이용해 이동한다. 디폴트 모드로 사용하면 경로에 hash(#)가 들어가있는 것을 볼 수 있다. 예를 들어 https://my-page.com/#/home과 같은 식이다. 이 때 vue router 설정에서 history mode를..
프론트엔드를 개발하다 보면, window 객체를 종종 사용하는데, 기본적으로 있는 속성 외에 추가해서 사용해야 할 경우도 있다. 자바스크립트라면 문제가 되지 않겠지만, 타입스크립트는 아는 타입의 경우에는 해당 객체에 있는 속성인지까지 미리 체크를 하기 때문에 문제가 발생한다. console.log(window.tempProperty) 이런 식으로 없는 속성을 사용하려면, 에러가 발생한다. 물론 타입스크립트의 오류를 끄거나 할 수 있지만, 오류를 끄고 any를 남발할수록 굳이 타입스크립트를 쓰는 의미가 퇴색되므로 바람직하지 않다고 생각한다. 아래처럼 속성을 추가해 declare하면 해결된다. declare global { interface Window { tempProperty: string; } }
programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 2021년 카카오 블라인드 신규 채용 A번 문제였던 신규 아이디 추천이다. 당시에도 코테를 한 번 볼 요량으로 신청했었는데, 그 때도 어렵지 않게 풀었던 문제이다. 이번에 다시 풀어보아 기록을 티스토리에도 남기려 한다. 공식 해답은 카카오 기술 블로그에 자세히 나와 있다. 문제는 그렇게 어렵지 않고, 단계별로 자세히 나아갈 길을 알려 준다(1. 대문자를 제거해라, 2...
많은 언어에서 예외 처리를 지원하고, C# 또한 마찬가지이다. 예외 처리가 나온 흐름 어느 정도 익숙해진 개발자라면 try-catch를 이용한 예외 처리가 이미 낯익을 것이다. 그래도 다른 처리 방법과, try-catch를 사용했을 때의 이점을 한 번 살펴보도록 하겠다. 메소드가 실패했음을 전달하는 것은, 3가지 정도 방법을 생각해볼 수 있다. 반환 값으로 fail을 전달한다. 예를 들어 실패하면 -1을 return하기로 하는 방식이다. 하지만 이는 실패 값이 연산의 결과인지, fail인지 모호할 수도 있고 오류에 대한 자세한 정보가 없다. 또한 -1이 fail이라는 로컬 룰을 모든 개발자가 숙지하고 있어야 한다. 로직적으로 봤을 때에는 정상적인 flow와(try 구문) 오류 처리 flow가(catch)..
소프트웨어를 설계하고 구현할 때, 보통은 어떠한 서비스를 만들겠다는 목적을 가진다. 조직이라면 기획에서 요청이 올 수도 있고, 개인 프로젝트라도 방향성을 잡고 들어가기 마련이다. 이를 위해서 요구 사항을 문서화하고, 그걸 분석하고 설계하는 과정을 거친다. 요구 분석 과정 요구 분석 과정을 'what'에 관점을 두는 편이 좋다. 요약하면 아래와 같은 과정을 가진다. 도메인 분석 : 문제의 배경과 성격, 범위를 파악 요구 추출 : 사용자가 소프트웨어에 대하여 무엇이 필요한지 도출 분석 및 명세화 : 도출된 요구사항을 문서로 정리 검토 : 사용자가 요구하는 것인지 검토(수정이 필요한 경우 요구 추출로 되돌아감) 도메인 분석 도메인(Domain)은 보통 해당 분야의 비즈니스나 기술 등을 일컫는다. 개발자는 기술..
쿠키 쿠키(Cookie)는 HTTP 통신 시에 사용자 정보 유지를 위해 헤더에 붙여 전송하는 정보이다. 즉, 서버에서 필요로하는 클라이언트 정보를 헤더에 붙여서 전달하는 것이다. 세션 관리를 위해서 token을 저장하거나 임시 데이터 관리 등에 사용된다. 중요 정보를 가진 쿠키는 반드시 암호화된 데이터 통신에서만 전달되도록 해야 한다. 세션 쿠키 : 서버를 이용하는 동안 사용자 정보를 유지한다. 자바스크립트에서 액세스할 수 없도록 쿠키의 속성을 설정해서 사용해야 한다. 영구(영속성) 쿠키 : 하드 디스크에 저장되는 쿠키로, 재방문시 사용자 정보를 기억하는 데에 사용된다. 중요 정보를 가지지 않도록 관리해야 한다. 쿠키를 주고 받는 메커니즘은 다음과 같다. 서버->클라이언트 : 쿠키 객체 생성(key:va..
최근에 Property or method "blahblah" is not defined on the instance but referenced during render 에러를 몇 번 마주쳐서 삽질을 했던 경험이 있다. 물론 문자 그대로 template에 쓰인 변수/함수/속성인데, undefined일 때 나오는 에러이다. 본인이 겪었던 몇 가지 경우를 아래에 정리하고, 본인의 케이스인지 확인해보면 좋을 듯하다. 1. 선언 후 초기화하지 않았을 경우 자바스크립트를 사용할 경우 let myVar;만 해두고 값을 넣지 않은 경우, 타입스크립트를 사용할 경우에는 타입 체킹으로 이런 실수를 할 위험이 현저하게 줄지만 let myVar: string | undefined; 이후에 값을 넣지 않는 경우가 종종 발생한다..
PATCH 방식 통신 RESTful API로 통신할 때, 수정을 위해서는 주로 PUT 방식으로 request를 날릴 것이다. 다만 좀 세부적으로 들어가면, 전체를 날려서 수정하는 것은 PUT 통신, 일부(partial)를 날려서 수정하는 것은 PATCH 통신을 이용하는 것이 올바른 방식이다. API를 구현하는 측에서 PUT 통신에도 일부만 와서 일부가 null인 경우에는 수정하지 않도록 처리를 해 두었으면 PUT 방식에서도 일부만 request로 보내도 괜찮으나, 만약 그런 처리가 되어있지 않다면 보내지 않는 부분이 null이 되는 불상사가 일어날 수 있다. 그렇기 때문에 partial하게 수정할 수 있는 방식은 PATCH를 명확하게 사용하는 편이 좋다. JSON PATCH 상술한 것처럼 일부만을 보내는..