-
[프로그래머스] 위클리 6주차 - 복서 정렬 하기(JS)알고리즘/프로그래머스 2021. 9. 25. 00:49
문제 이해하기 복서들의 몸무게와 전적을 제안된 순서대로 정렬, 제안된 순서는 전체 승률이 높은복서 (1.)값이 같은 경우 몸무게가 무거운 복서를 이긴 횟수가 많은 복서 (1., 2.)값이 같은 경우 몸무게가 무거운 경우 (1., 2., 3.)값 모두 같은 경우 작은 번호가 앞쪽으로 데이터 추상화 제안 된 순서대로 정렬을 해야함 제안된 `승률`, `무거운 복서 승리 횟수`, `몸무게`, `번호`를 담을 배열 사용 알고리즘 승률은 head2head에서 승리 횟수인 W의 개수, 패배 회수인 L을 구한 후, 승리횟수와 패배횟수를 더한 전적으로 승리값을 나누어 구한다 let winRate = head2head.map((rates)=> { let winCnt = (rates.match(/W/g) || []).len..
-
객체 지향 프로그래밍카테고리 없음 2021. 9. 25. 00:35
목표 객체 지향 프로그래밍에 대해 이해한다 객치 지향 프로그래밍의 4가지 원칙을 알아보고 이해한다. 객체 지향 프로그래밍으로 코드를 작성한다. 객체 지향 프로그래밍이란? 객체를 컨셉으로 만든 프로그래밍 페러다임(스타일) 객체들끼리 의사소통하도록 디자인된 프로그램 관련있는 데이터와 함수를 Object 단위로 개발 객체 지향 프로그래밍의 장점 및 단점 장점 대형 프로젝트에 적합 분석과 설계의 전환이 쉽다 만들어 놓은 코드의 재활용이 가능 단점 설계에 많은 시간이 투자 객체가 많으면 프로그램 용양이 커진다 처리속도가 상대적으로 느리다 객체 지향의 4가지 원칙 캡슐화(Encapsulation) 객체와 관련된 내용들을 묶어줌 외부에서 내부의 상태를 직접 변경 할수 없음 외부에서 내부의 함수를 실행하여 내부상태를 ..
-
npm ? npx?back-end/nodejs 2021. 9. 10. 15:38
목표 npm, npx의 등장 배경 npx, npm에 대해 이해한다. npx, npm의 차이점을 이해한다 npm, npx의 등장배경 외부 라이브러리가 필요한 경우 소스코드를 다운로드해서 프로젝트에 일일히 넣어야하는 번거로움 외부 라이브러리 버전이 업데이트 된다면 다시 다운로드해서 프로젝트에 넣어야하는 번거로움 외부 라이브러리를 쉽게 관리하고자 등장하게 된게 npm, yarn이다. 점점 외부 라이브러리가 고도화 됨에 따라 외부 라이브러리를 실행해야하는 경우가 생김 외부 라이브러리를 실행 시켜주고자 등장하게 된게 npx 이다. npm 이란 ? Node Package Manager의 줄임말로 Node 설치시에 자동으로 설치된다 외부 라이브러리를 쉽게 관리할 수 있게 해주는 프로그램이다. 간단한 명령어 (npm ..
-
[JS] 자바스크립트 클래스 추가/삭제front-end/javascript 2021. 8. 31. 00:39
목표 JS 클래스 추가/삭제를 알아야하는 이유 JS 클래스 추가/삭제 하는 방법 JS 클래스 추가/삭제를 알아야하는 이유 실무에서는 UI 개발자가 UI를 class 형식으로 전달하여 사용하기 때문 특정 상황에 class를 추가, 삭제하여 UI를 변경 해야하기 때문 JS 클래스 추가 - 클래스 추가시에 사용 // 클래스 추가 div.classList.add('good', 'love'); JS 클래스 삭제 - 클래스 삭제시에 사용 // 클래스 삭제 div.classList.remove('love'); JS 클래스 덮어쓰기 - 기존에 있는 클래스를 다지우고 새로 등록시에 사용 // 클래스 덮어쓰기 div.className = 'good'; JS 특정 클래스 변경 - on/off로 클래스 변경시에 많이사용 //..
-
[javascript] key event 이해하기front-end/javascript 2020. 3. 18. 09:52
오늘은 간단한 key event에 대해 이해해보는 시간을 가져보고자 합니다. key event는 지금 제가 타이핑하고 있는 이 순간에도 일어나고 있습니다. ㅎㅎ 즉 타이핑을 할때마다 key event가 발생하게 됩니다. 총 keydown, keyup, keypress 이렇게 총 3개의 이벤트가 발생하게 되는데요. 각각의 이벤트가 언제 발생하는지 알아봅시다. 첫째로 keydwon key + down : keyboard가 down 되었을 때. 즉 키보드가 눌렀을 때 실행되는 이벤트입니다. 둘째로 keypress key + press : key가 press 되었을때, 즉 글자가 눌렀을 때 실행되는 이벤트입니다. keydown이벤트와 동일하게 키보드가 눌렀을때 실행되지만, 큰 차이점이 있습니다. keydown이..
-
gulp? browserify?front-end 2020. 2. 17. 23:03
요즘 단순 자바스크립트와 jqeury를 사용하여 개발하던 중 멘토에게 한 소리를 들었다. ES6는 하위 브라우저에서 호환이 되지 않는다. 하위 브라우저에서도 작동하게 끔 해야한다고 했다. 하~ ㅠ 거의 2주동안 ES6로 개발한 내용을 어떻게 바꾸란 말인가? ㅠㅠ 이런 고민속에서 오늘도 nomad coder 강의를 들었다. 오늘은 gulp를 추가하는 작업을 했다. gulp는 sass를 사용할 수 있도록 빌드하여 css로 변경한다. sass에 대해 필요성을 그다지 크게 느끼지 못했지만, gulp는 webpack에 비해 훨씬 이해하기 쉬웠다. 문득 sass를 css로 바꿔주는 gulp를 보다가 최신 js를 구버전 js로 바꿔주지 않을까? 생각을 했다. 내일 한번 회사에서 해봐야지 ㅋㅋ
-
[191226] 개발일지개발일지 2019. 12. 26. 17:40
목표 github 로그인 구현하기 개발내용 passport-github API가 상세히 나와 있어, 쉽게 개발 할 수 있었다. http://www.passportjs.org/packages/passport-github/ passport-github GitHub authentication strategy for Passport. www.passportjs.org 새롭게 알게된 팁 mongoose.find({ email }) vs mongoose.findOne({ email }); find의 경우 배열로 값을 읽는다, findOne의 경운 객체 하나를 읽는다. 하나만 업데이트 할시 findOne을 사용하자. 객체일 경우 객체 이름.save()로 저장 가능하다. 특이사항 github에서 로그인을 비공개로 했을..