일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- toCharArray
- java 백준 1차원 배열
- 리눅스마스터 1급 정리
- 고잉버스
- 리눅스마스터 3과목
- 월간코드챌린지
- 개발자 회고록
- Java
- 리눅스
- 프로그래머스
- 스프링 컨테이너
- 연습문제
- Linux
- 스프링 빈
- 문자열
- 명령어
- Kotlin
- 자바
- 카카오
- 코딩테스트
- 자바스크립트 코딩의 기술
- GoingBus
- Memoir
- 코테
- 반복문
- 리눅스마스터1급
- 백준 java
- map
- 백준 javascript
- JavaScript
- Today
- Total
목록 전체 글 (224)
hoon DevLog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bDj7Kz/btsEZAOCFs9/fGEfI2KIzUYXe3Nf83STJ0/img.jpg)
7장 유연한 함수를 만들어라 tip32. 테스트하기 쉬운 함수를 작성하라 코드를 쉽게 리팩토링 가능 오래된 코드를 쉽게 이해 가능 마지막으로 명확하고 버그가 적은 코드를 작성 가능 너무 당연한 말이 아닐까 싶지만, 현실은 테스트 코드를 작성하는 것 조차 쉽지 않다. (테스트 작성의 어려움, 코드가 외부 의존성이 강하게 결합, 개발속도가 느림 등...) import { getTaxInformation } from './taxService'; function formatPrice(user, { price, location }) { const rate = getTaxInformation(location); // const taxes = rate ? `추가 세금 $${price * rate}` : '추가 세금'..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lDYzY/btsEXqEo3ml/CB4tXk8MqKJMkZA4UNF7ak/img.png)
Error 발생 경로 한 프로젝트에 여러 명이 작업하는 경우, 작업 순서나 merge를 한 시점이 꼬인 경우, 이전 버전으로 돌아가야 하는 경우가 종종 발생한다. 하지만 이미 remote branch에 Push한 Commit 사항은 항상 Revert로 되돌려야 한다. 필자와 같이 "Revert Commit" 만으로 선택한 commit 사항이 적용되기 전 상태를 만들어야 하지만 아래와 같은 에러가 발생할 수 있다. your local changes would be overwritten by revert. hint: commit your changes or stash them to proceed. revert failed 해석해보면, revert로 인해 당신의 로컬 변경 사항을 덮어쓰게 된다. 힌트: 계속 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vx2gR/btsEtlE8LKn/ORjmhlZJ5E9hqkvOOv2ym0/img.jpg)
6장 매개변수와 return 문을 정리하라 tip28. 매개변수 기본값을 생성하라 pound를 kilogram으로 변환하는 코드를 보면서 알아보자.(pound를 2.2로 나눠야 kilogram으로 변환) function convertWeight(weight) { return weight / 2.2; } 온스(ounce)도 변환해야 한다는 요구사항이 생겼다.(온스는 1pound === 16ounce 이므로 ounce / 16으로 계산) function convertWeight(weight, ounces) { const oz = ounces ? ounces / 16 : 0; const total = weight + oz; return total / 2.2; } convertWeight(44, 11); // ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sY3g5/btsEj595FqD/zgZzFcqwoVE9EdrMYuAhmK/img.jpg)
5장 배열로 데이터 컬렉션을 관리하라 tip23. filter( )와 find( )로 데이터의 부분집합을 생성하라 다음은 문자열이 담긴 간단한 배열에 필터링을 적용하는 예제 코드이다. const team = ['Michelle B', 'Dave L', 'Dave C', 'Courtne B', 'Davina M']; 'Dave'.match(/Dav/); // ["Dav", index: 0, input: "Dave", groups: undefined] 'Michelle'.match(/Dav/); // null match() : 문자열이 정규 표현식과 일치하면 일치한 항목에 대한 정보를 배열로 반환, 일치하지 않으면 null 반환!! filter() 메서드로 수정해보면 다음과 같다. const daves = ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rLdsO/btsEiiNWXTj/g9BQmaila8Bx0ByUKLkyCK/img.jpg)
[속보] 유튜브 프리미엄 요금인상 월 19,500원!!!!!!!라고 하기에는 이미 많은 분들이 많이 알고 계실 유튜브 프리미엄의 요금 인상!!이제는 기존 옛날 저렴했던 7000원대, 8000원대 회원들도 3개월 후엔 똑같이 인상된다고 한다ㄷㄷ때문에 이에 회의를 느낀 구독자들이 유튜브 프리미엄 우회 VPN을 사용하는데,각종 나라들의 도메인이 많이 막히고,외국주소 인증 및 복잡한 프로세스가 많다.때문에 필자도 지인추천을 통해 알게 된 중간 플랫폼,GoingBus 바로가기▲ 고잉버스 링크!!! ▲위에 보이는 화면은 바로 고잉버스 메인화면!(작성일 기준 2024/02/01)이렇게 다양한 OTT 서비스를 지원하고 있고,직관적으로 봐도 아주 저렴한 요금으로 운영하고 있음을 볼 수 있다!!!! 구독공유 플랫폼을 이용..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pEE8s/btsDAtRkF44/hci062M0Psk0yTXxNOuBb0/img.jpg)
5장 반복문을 단순하게 만들어라 tip20. 화살표 함수로 반복문을 단순하게 만들어라 화살표 함수는 함수가 장황해지는 문제를 해결해서 함수 작성을 간결하고 짧게 만들어준다. 또한, 필요하지 않은 정보를 최대한 걷어낸다. (function keyword, 괄호, return, 중괄호 등...) 매개변수가 1개인 경우에는 괄호를 생략 매개변수가 없거나 2개 이상인 경우에는 괄호 필수 // 이름이 있는 '기명함수' function capitalize(name) { return name[0].toUpperCase() + name.slice(1); } // 이름이 없어 변수에 할당하는 '익명함수' const capitalize = function(name) { return name[0].toUpperCase() ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FTjGL/btsDJlFzGtH/pyyCR3aXEVNGXNu0fJBUD0/img.png)
Error 발생 경로 Spring에서 myBatis를 연동하면서 가장 많이 접하게 되는 error를 가져와 봤다. (는 또 반복되는 실수... error 전문 개발자....) Error : java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ~ 우선 직역하자면 매핑된 컬렉션 구문들에 값이 존재하지 않는다는 것!!!!! 생각보다 이 에러가 많이 등장하는데, 과연 어떻게 해결해야할까?!! 해결 mapper id Check! 쿼리문을 모아두는 xml파일인 mapper에서 'userName'이 호출되는 DAO(Data Acess Object)와 같은 java파일에서 값이 같아야 하는데, 다르면 에러가..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/criVbn/btsDA3SuwUj/LwZBH4rh6H7S5XvNcnjqj1/img.jpg)
4장 조건문을 깔끔하게 작성하라 tip17. 거짓 값이 있는 조건문을 축약하라 불 자료형(boolean type)이라고 부르는 원시값 true, false 와 참(truthy) 또는 거짓(falsy) 값이라고 부르는 것들에 대한 차이를 살펴보자. Falsy keyword 0 숫자 -0 음수 0n BigInt "" 빈 문자열 null 아무 값도 없음 undefined 원시값 NaN 숫자가 아님 배열과 객체의 경우 비어있더라도 항상 값이 참이다.(ex. [], {}) 객체 또는 배열이 비어있는지 확인하려면 [].length 또는 Object.keys({}).length 등으로 확인해야 한다. 정의되지 않은 키의 값을 가져오면 undefined 이다. 1 == '1' // true 동등 : 자료형이 다른 값을..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ug43e/btsDrmeeR5h/kr23qCuLSyEiNZOCGEGgJk/img.jpg)
3장 특수한 컬렉션을 이용해 코드 명료성을 극대화하라 tip16. Set를 이용해 고윳값을 관리하라. 드디어 3장의 마지막 Set!! 를 정리하고 마무리하려고 한다. 앞에 tip15에서 언급했던 강아지에 대한 정보가 들어있는 필터링 조건을 보자. const dogs = [ { 이름 : '맥스', 크기: '소형견', 견종: '보스턴테리어', 색상: '검정색', }, { 이름 : '도니', 크기: '대형견', 견종: '래브라도레트리버', 색상: '검정색', }, { 이름 : '섀도', 크기: '중형견', 견종: '래브라도레트리버', 색상: '갈색', }, ] 사용자가 선택할 수 있는 조건을 알려면 선택할 수 있는 모든 값을 수집해야 한다. 색상 조건을 수집하기 위해 배열 메서드 map()을 활용해보자. fu..
Error 발생 경로 Error handling response: TypeError: Cannot read property 'always' of undefined at chrome-extension://cnfngpgfjllafbghaimjcmailafcdhod/releaseDrag.js:90:49 평소에 잘 보이지 않던 에러가 느닷없이 발생?!!? 뭐지 싶었는데 에러를 자세히 들여다보니 "chrome-extension" 발견!!!!!!!!! 매우 높은 확률로 Chrome 확장 프로그램 관련 에러이다!!!! 해결 끝에 보니 "releaseDrag.js"?!?!!?? 종종 복붙이 되지 않을 때 사용하는 Drag-Free 확장 프로그램 때문이었던 것!!! Drag-Free 때문에 발생되는 오류로 Drag-Fr..