전체 글

· Linux
사내에서 나름... MSA환경(?)을 구축하고 있다. 문제는 도입 과도기라 한번 서버를 띄우려고 하면 터미널을 여러개를 켜서 각 서버를 순서대로 띄워줘야 한다는 것이다. 너무너무 귀찮아서 집에서 스크립트를 작성해보기로 했다. 가장 주의해야 할 점은 현 상황에서는 config_server가 띄워진 이후에 나머지 서비스들을 구동 시켜야 한다는 점이었다. 참고로 아래 코드들은 순전히 개인적으로 개발을 편리하게 하기 위한 목적으로 간단히 만든 스크립트이니 부족한 점이 많을 수 있다는 점 참고 부탁드립니다. 터미널 탭 생성 #!/bin/bash targetPath=$PWD services=("config_server" "discovery_server" "service_0" "service_a" "gateway_s..
· Vue
atmoic design을 도입하면서, 공용으로 사용하고 있는 component들을 새롭게 디자인하고 있습니다. 여기에서는 vue3 + composition setup Api + typescript 로 toggle 컴포넌트를 간단히 만들어 보겠습니다. 완성된 모습은 아래와 같습니다. vue3에서 구현했으며, 구현 코드는 아래와 같습니다. 부모 컴포넌트에서 사용은 아래처럼 했습니다. {{ toggleValue }}
· Vue
생산성을 높이기 위해 vue snippet을 만들어봅시다. 먼저, 아래처럼 vscode에서 command + shift + P 를 눌러 snippet을 검색해서 사용자 코드 조각 구성을 선택해 줍니다. vue snippet을 생성할 것이니 vue를 검색해 선택해줍니다. 그럼 vue.json 파일이 생성되고 여기에서 원하는 대로 설정해주면 됩니다. 저는 typescript와 scss를 사용할 예정이어서 아래처럼 설정해주었습니다. { "vue-init-ts": { "scope": "vue", "prefix": "vts", "body": [ "", "\t", "\t", "", "", "" "" ], "description": "Vue3 Composition API" }, "vue-init-setup-ts": ..
· Algorithm
주어진 정수 num에 대해 결과가 한 자릿수만 남을 때까지 반복해서 모든 자릿수를 더하고 그 값을 반환하는 문제이다. 아래처럼 간단히 재귀로 풀었다. var addDigits = function(num) { const numArray = num.toString().split("").map(str => Number(str)); if(numArray.length === 1){ return numArray[0] }else{ return addDigits(numArray.reduce((acc, cur) => acc + cur)) } }; 다른 사람들 풀이를 보니 아래처럼 기발하게 푸는 방법도 있었다. var addDigits = function(num) { return 1 + (num - 1) % 9; };
· Algorithm
anagram인지 판단하는 문제이다. anagram은 각 String의 구성요소들의 순서만 바꾸어서 생성한 다른 String을 의미한다. var isAnagram = function(s, t) { if(s.length !== t.length) return false; const mapper = {}; for(const letter of s.split("")){ if(!mapper[letter]){ mapper[letter] = 1; }else{ mapper[letter] += 1; } } for(let i = 0; i < t.length; i++){ const letter = t[i]; if(mapper[letter] < 0 || mapper[letter] === undefined){ return fal..
· Algorithm
leetCode의 Valid Palindrome 문제를 해결하고 정리한다. 1. 먼저 정규표현식으로 알파베틱 글자이외를 전부 없애준다. 2. 소문자로 변경 3. 글자의 처음과 마지막을 two pointer로 비교하며 리턴한다. var isPalindrome = function(s) { let str = s.replace(/[^a-zA-Z0-9]/g, ''); str = str.toLowerCase(); let start = 0; let end = str.length-1; for(let i = start; start < end ; i++){ if(str[start] === str[end]){ start ++; end --; }else{ return false } } return true; };
moyanglee
moyang