본문 바로가기

전체보기

(113)
Java HashMap은 어떻게 동작하는가? Java HashMap은 어떻게 동작하는가?(NAVER D2) NAVER D2 해시맵과 테이블은 기능은 동일하다 다만 보조해시 함수를 사용하는 해시맵이 충돌이 덜 발생할 수 있어 상대적으로 성능상 이슈가 있다. 해시 테이블은 거의 변화가 없지만 해시 맵은 버전을 거치면서 변화가 많다 어떤 변화? // 해시맵의 선언부 public class java/util/HashMap extends java/util/AbstractMap implements java/util/Map java/lang/Cloneable java/io/Serializable { // 해시 테이블의 선언부 public class java/util/Hashtable extends java/util/Dictionary implements jav..
[스터디] 젠킨스 스터디를 마치며... 초보를 위한 젠킨스 2 활용 가이드 2/e 국내도서 저자 : 니킬 파타니아(Nikhil Pathania) / 이상욱 역 출판 : 에이콘출판사 2018.10.15 상세보기 https://github.com/bakery-blueprint/oven-jenkins bakery-blueprint/oven-jenkins build and grow. Contribute to bakery-blueprint/oven-jenkins development by creating an account on GitHub. github.com 우리 회사는 인프라에 대한 기반 사항을 대부분 제공해준다. 서버, 네트워크 등등 하지만 '떠먹여 주는 것'도 못하고 있다는 생각이 강하게 들었다. 그래서 젠킨스 공부를 시작하게 되었다. 기본적..
vue-cli global 설치후 command not found 환경 : windows 10 terminal : git bash npm install vue-cli -global 명령어를 통해 설치후 vue init webpack-simple 명령어를 통해 웹백 프로젝트 생성을 하다 vue command not found 에러가 발생했다. 자세히 보면 C:\Users\{username}\AppData\Roaming\npm\node_modules\vue-cli\bin\vue 영역에 설치되는 걸 볼 수 있다. 해당영역에 들어가보면 이렇게 vue 파일이 존재한다. 해당 영역(C:\Users\{username}\AppData\Roaming\npm\node_modules\vue-cli\bin)을 환경변수 path 에 등록시키면 잘 동작한다.
[Kotlin] 함수 정의와 호출 함수 정의와 호출 3장에서 다루는 내용 컬렌션, 문자열, 정규식을 다루기 위한 함수 이름 붙인 인자, 디폴트 파라미터 값, 중위 호출 문법 사용 확장 함수와 확장 프로퍼티를 사용해 자바 라이브러리 적용 최상위 및 로컬 함수와 프로퍼티를 사용해 코드 구조화 3.1. 코틀린에서 컬렉션 만들기 숫자로 이루어진 집합 val set = hashSetOf(1, 7, 53) 리스트와 맵 val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") 여기서 to는 언어가 제공하는 특별한 키워드가 아니라 일반 '함수' 라는 점에 유의하자 위에서 만든 객체의 클래스 >>> println(set.javaCla..
[레거시 코드 활용 전략] CH7 코드 하나 바꾸는 데 왜 이리 오래 걸리지? 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 2020/02/07 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH4 봉합 모델 CH5 는 단순한 테스트 도구와 관련된 이야기라 다루지 않습니다~ 2020/02/10 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 1 2020/02/15 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 2 ch 7 - 코드 ..
[레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 2 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 2020/02/07 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH4 봉합 모델 CH5 는 단순한 테스트 도구와 관련된 이야기라 다루지 않습니다~ 2020/02/10 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 1 ch 6 - 고칠 것은 많고 시간은 없고 - 2 포장 메소드 기존 메소드에 동작을 추가하는 것은 아주 간단하다. 하지만 이것이 항상 옳은 ..
[레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 1 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 2020/02/07 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH4 봉합 모델 CH5 는 단순한 테스트 도구와 관련된 이야기라 다루지 않습니다~ ch 6 - 고칠 것은 많고 시간은 없고 - 1 현실적으로 레거시에서는 잘 하지 않았던 행위들을 공부하고 있을 수 있다. 또한 테스트 코드를 작성 및 코드 변경에 많은 시간이 필요한 작업이다. 그렇기 때문에 정말로 '가치'가 있는지 궁금할 때가 있다. 실제로..
[레거시 코드 활용 전략] CH4 봉합 모델 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 ch 4 - 봉합 모델 봉합 단위 테스트를 위해 개별 클래스를 추출하려고 하면 수많은 의존 관계를 제거할 필요가 있다. '좋은' 설계를 기반하고 있다 하더라도 많은 작업이 수반된다. 많은 작업 중 하나인 '봉합'이라는 개념을 알아보자. 우선 봉합은 코드를 직접 편집하지 않고도 프로그램의 동작을 변경할 수 있는 위치를 말한다. 아래 예제를 보자 public class MailSender { public void sen..
[레거시 코드 활용 전략] CH3 감지와 분리 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 ch 3 - 감지와 분리 이상적인 환경이라면 변경 작업을 하기 전 특별히 할 일이 없다. 테스트를 하고 싶은 대상을 테스트 코드 내에서 객체를 생성해 작업을 하면 끝이다. 하지만 불행하게도 클래스들의 의존 관계들 때문에 이것은 거의 불가능하다. 의존관계를 제거해야 하는 이유는 무엇일까? 크게 두 가지로 볼 수 있다. 감지 : 코드 내에서 계산된 값에 접근하여 변경이나 값을 확인할 수 없을 때 분리 : 코드를 테스트 코드 내에서 실행할 수 없을 때 코드 분리를 위해 예제 코드 public class Network..
[레거시 코드 활용 전략] CH2 피드백 활용 이전글 : 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 ch 2 - 피드백 활용 시스템을 변경하는 방법에는 크게 두가지가 있다. 수정 후 기도하기 보호 후 수정하기 일반적인 개발 방법에서는 1번이 많이 사용된다. 1번 같은 경우 코드 변경 대상 코드를 이해하고, 계획을 세운 후 변경 작업에 들어간다. 변경을 완료하고 나서는 제대로 동작하고, 의도하지 않는 영향이 있는지 조사한다. 결과적으로 작업 결과를 확인하고 검토하는 시간이 추가로 들어가게 된다. 얼핏 보기에는 이는 매우 '신중'하고 '전문'적인 방식처럼 보인다. 그러나 아무리 신중해도 이것이 안전성에 비례한다는 보장은 없다. '보호 후 수정하기' 방법은 조금 다른 방식으로 코드를 변경한다. 변경..