본문 바로가기
728x90

전체 글66

2021 그렙 챌린지 SQL 4번 회고 시작 2021 그렙 챌린지 SQL 문제를 풀어보았다. 요즘 Vue를 쓰며 서비스를 맡고 있기 때문에 SQL문을 오랜만에 접하지만 그래도 차근히 풀었다. 아마 문제는 판매실적 별로 사원을 분류하는 것으로 그리 복잡한 문제는 아니었다. 나의 풀이 SELECT EMPLOYEE_ID, (case when (count(*) > 1 and count(*) 3 then '최우수 사원' else '일반 사원' end) as '분류 상태', COUNT(*) as COUNT FROM SELLINGS GROUP BY EMPLOYEE_ID; 세 컬럼을 뽑는데 분류하기 위해 case when을 사용하여 문제를 풀어보았다. 간간히 SQL 공부도 빠지지 않고 해야겠다. .. 2021. 8. 25.
Hash Tables이란? #NomadCoders #자료구조 1. HashTable이란? key value system으로 javascript에서는 object로 python에서는 dictionary, Go에서는 map 등등.. 이 있다. array와 비교해보자. 예를 들어 카페 메뉴가 다음과 같이 배열로 되어있다고 가정하자. menu = [{bread, 2000}, {coffee, 1500}, ... ]; 여기서 coffee의 가격을 알고 싶으면 선형검색을 하면 되나 메뉴가 많을수록 오래걸린다. 이때 hash tables로 정리하면 다음과 같다. menu = {"bread" : 2000, "coffee" : 1500, ... }; // key(메뉴) : value(가격) Hash tables의 시간복잡도는 상수시간인 Q(1)이기.. 2021. 8. 24.
2021 와디즈 코딩챌린지 2번 : we make CODE #better 시작 마찬가지로 알고리즘 문제인 와디즈 코딩챌린지 2번이다. 새로운 문법을 만드는 문제로 블록 개념을 생각하며 문제를 푼다면 해결할 수 있을 것이다. 나의 풀이 JAVA로 작성한 코드 package test; import java.util.ArrayList; public class wadiz2 { public static void main(String[] args) { String[] code = {"a=3", "..a=4", "..b=3", "..print a", ".......a=6", ".......print a", ".......print b", "..print a", "....a=7", "....print a", "print a", "print b", "a=4", "print a", "...pr.. 2021. 8. 23.
2021 와디즈 코딩챌린지 1번 : we make CODE #better 시작 알고리즘 문제를 접하기 위해 와디즈 코딩챌린지를 신청하였다. 호수와 비밀번호를 입력하여 조건에 맞게 입력한 횟수를 구하는 문제로 많은 풀이법 중 주어진 배열을 그대로 활용하여 문제를 풀어보았다. 나의 풀이 JAVA로 작성한 코드 package test; import java.util.Arrays; import java.util.Collections; public class wadiz1 { public static void main(String[] args) { int[][] passwords = {{101,9999},{102,1111}}; String s = "101#9999#102#1111#101#9999#101#9999#"; System.out.println(solution(passwords, .. 2021. 8. 22.
ES5, ES6이란? ES(ECMAScript)란? JavaScript가 표준화된 규격, 즉 ECMAScript를 줄여 ES라고 하고 5, 6은 버전을 의미한다. ES가 생긴 배경 Javascript는 넷스케이프 커뮤니케이션즈에서 개발이 되고, MS에서도 JScript를 개발하여 두 언어가 호환되지 않는 경우(크로스 브라우징 이슈)를 해결하기 위해 표준화하였다. ES5와 ES6 버전의 차이점 요약 ES5과 다르게 ES6에서 가능한 것들 템플릿 리터럴 : console.log(`${변수명} 하세요.`) 화살표 함수 : var str = func => ({id : "1"}); this : 자신을 둘러싸고 있는 것을 바라봐 bind가 필요없다. var, const, let : const와 let 추가 모듈 : import와 exp.. 2021. 8. 20.
Vue Cli 4.x (Vue3)에서 vue-router 사용하기 Vue를 이용한 토이 프로젝트를 하면서 SPA 구조를 위해 router를 사용하려고 막 구글링을 해서 만든 코드에서 에러가 발생하였다.. 문제 발생 Cannot read property 'use' of undefined 결국은 해결하였지만 몇시간을 헤매 해결방안을 찾았다. 결론부터 말하면 버전의 호환성 문제였다. vue3를 vue2로 낮추면 해결가능하였지만 나는 vue3로 하고 싶었다. 그럼 Vue3로 vue-router를 구현해보자. 해결방안 1. 먼저 vue-router를 다음 명령어로 재설치한다. (버전을 맞추기 위해..) npm i vue-router@next 2. router.js를 만들고 다음 코드를 작성하자. (필자의 프로젝트는 Vue cli 이다.) import {createWebHisto.. 2021. 8. 13.
JAVA 성능 향상 시키기 개발을 하면 고민을 많이 하게 된다. 과연 내가 작성한 코드는 효율성이 좋은가? 어떻게 하면 효율적인 코드를 작성할 수 있을까? 물론 알고리즘과 자료구조를 잘 선택하여 개발하면 된다. 하지만 그 밖에 또 무엇이 있는지 알아보고 있다면 어떻게 해야하는지 공부해보았다. 1. String 대신 StringBuilder와 StringBuffer도 생각해보자. 일반적으로 사용하는 쿼리문 작성 방법 String query = ""; query += "select * "; query += "from ( "; query += "select column1, "; query += "column2, "; ... 이를 다음과 같이 StringBuilder를 사용하면 응답 시간과 메모리 사용량을 줄일 수 있다. StringBu.. 2021. 8. 11.
Source tree 간단 사용법 해당글은 git의 기본을 알고 있으면 이해하기 쉬울 것이다. 소스트리 주소 및 다운로드 : https://www.sourcetreeapp.com/ 로컬 저장소에서 프로젝트 열기 원격 저장소(github, gitlab ... )에서 레퍼지토리 가져오기 1. Clone 2. 원격 저장소의 주소 3. 로컬 위치 (저장하고자 하는) 고급 옵션 : 원하는 브랜치를 설정할 수 있다. 로컬 저장소에서 작업용 레퍼지토리 추가 Commit 하기 소스 변경 사항 목록들 스테이지에 올리기 1. 스테이지에 올라간 목록 2. 변경된 부분 확인 3. commit 메세지 (아래의 체크박스를 선택 시 바로 PUSH) PUSH 하기 푸시하고자 하는 브런치를 선택하여 Push한다. 체크아웃(브랜치 변경) 방법 체크아웃할 브랜치를 선택하.. 2021. 8. 6.
stopPropagation 간단정리? event.stopPropagation란? 먼저 propagation이란 파동, 전파란 의미로 예측해보면 stopPropagation은 더이상의 전파를 막는다고 생각할 수 있다. 실제로 예측한 바와 같이 동작하는데 다음 코드를 보며 이해해보자. 위의 코드에서 div를 클릭하게 되면 ClickDiv()가 실행되는데 event.stopPropagation() 를 사용하면 li 태그를 거친 후 ul 태그까지 이벤트가 전달되는 것을 막아 ul의 ClickUl() 실행을 막아주는 역할을 수행한다. event.PreventDefault란? preventDefault 메소드는 현재 이벤트의 기본 동작을 중지 하기 위해 사용한다. a 태그를 예를 들어 보자. PreventDefault 테스트 ​ $("#div").on.. 2021. 8. 5.
728x90