본문 바로가기

분류 전체보기

(99)
2022/01/06 TIL 2022/01/05 TIL DNS A Record는 도메인 주소와 서버의 IP 주소를 직접 매핑 시키는 방법입니다. CNAME은 Canonical Name의 약자로 도메인 주소를 또 다른 도메인 주소로 매핑 시키는 방법입니다. TDD 이규원 님의 강의를 듣던 중 우리가 하는 작업이 TDD와 비슷하다는 내용이 신선하여 블로그에 포스팅 했습니다. 스프링 러너 Spring 5.0부터는 스프링 JCL 모듈을 통해 SLF4J API와 Log4J API를 제공한다. SLF4J(Simple Logging Facade for Java)는 추상 프레임워크이기 때문에 Logback이나 Log4J와 같은 구현체와 함께 사용한다.
우리는 이미 TDD를 하고 있다? The RED : 이규원의 현실 세상의 TDD : 안정감을 주는 코드 작성 방법 내용 중 우리는 이미 TDD와 같은 작업을 하고 있다는 내용이 있습니다. 개발자들의 주된 작업 오류가 발생한다. 에러 메시지를 확인한다. 해결하기 위해 다양한 방법을 시도한다. ex) input값 변경, 로직 변경 오류를 해결하고 배포한다. TDD도 이와 비슷한 작업을 하지만 순서만 좀 다를뿐입니다. 실패하는 코드를 먼저 작성한다. 에러 메시지를 확인하고 동작하게 한다. fixsture를 변경하며 다양한 에러 메시지를 확인한다. 주어진 에러 메시지를 확인하고 운영 코드를 완성하고 배포한다. 개발자는 에러 메시지를 보고 문제를 해결한다는 공통점이 있습니다. TDD는 시간이 오래 걸리는 것이 아니라 미래에 할 작업을 현재로 가져..
2022/01/05 TIL 코드컴플리트 30장 스모크 테스트란? 프로그램의 중요한 기능이 잘 작동하는지 확인하기 위한 테스트이다. 전체 시스템을 끝에서 끝까지 실행하며 일반 건강 검진과 유사합니다. 작업시간이 5시간 주어진다면? 5시간 동안 마음 편히 일한다. 4시간 45분 동안 일을 처리하는 도구를 만들고 15분 안에 그 일을 처리한다. 대부분의 훌륭한 개발자는 2번을 선택한다고 한다. 이 글을 보고 이규원 님이 Junit에서 @ParameterizedTest 할 때 랜덤 값을 생성하는 도구를 직접 만든 것이 생각났다. 책을 읽다 보면 정말 이렇게 하는 개발자가 있을까라는 생각을 하지만 실제로 실천하는 사람이 있고 책에서처럼 훌륭한 개발자인 것 같다. 코드 컴플리트 2 코드숨 스터디 [28~30] 보상 좋은 코딩을 장려하는 기법..
2022/01/04 TIL 코드 컴플리트2 28장 코드가 공용 자산이란 것을 강조하라 최근에 회사에서 PR을 통한 코드 리뷰를 시작했다. 확실히 이런 행위가 우리 서비스 라는 인식을 주는 것 같아 좋다. 주기적으로 다시 예측하라 기간을 산정하거나 구현 방법에 대해 정하고 이를 지키지 못하면 개발자로서 능력이 부족하다고 생각하기 쉽다. 하지만 이런 접근보다는 예측의 변화는 당연하며 그렇기 때문에 주기적으로 예측하는 자세가 필요하다. (물론 경험이 부족하거나 숙련도가 부족한 경우도 있다.) 코드 컴플리트2 29장 상향식, 하향식, 샌드위치, 위험 지향적, 기능 지향적, T-자형. 이러한 이름을 만든 사람들의 심정을 이해할 수 있겠는가? 어떠한 접근 방법도 견고한 절차는 아니다. TDD 발표를 준바할 때 상향식, 하향식에 대해 고민이 ..
2022/01/03 TIL 클린 코드 1장 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. 개발에 대한 복잡한 생각이 간단하고 명료하게 정리되는 것 같아 좋은 표현이라고 생각한다. 복잡한 요구사항을 받았을 때 이렇게 생각해봐야겠다. 르블랑의 법칙 : 나중은 절대 오지 않는다. 처음 작성할 때부터 좋은 코드를 작성하라는 의미 같다. 1874년에 의사에게 손을 씻으라고 했지만 환자를 보느라 너무 바쁘므로 환자 방문 사이에 손 씻을 시간이 없다는 이유로 거부했다. 회사에서 항상 일정에 대한 논의를 하게 된다. 회사의 성과만을 생각해서 주로 테스트 코드, 유지 보수하기 좋은 코드를 포기했던 경험이 있는데 이를 반성하게 하는 내용이었다. 클린 코드 2장 의도를 분명히 ..
[자바의 신2] 23장 회고 Set의 필요성 Collection을 확장한 배열과 비슷한 역할을 하는 3개의 인터페이스(List, Set, Queue)가 있다. Set은 순서에 상관없이 데이터의 존재 유무를 확인하는 용도로 사용된다. Set의 주요 클래스 HashSet : 순서가 필요 없는 데이터를 해시 테이블에 저장한다. Set 중에 성능이 가장 좋다. TreeSet: 저장된 데이터의 값에 따라 정렬된다. HashSet보다 약간 느리다. LinkedHashSet: 저장된 순서에 따라 정렬된다. 3개 중 가장 느리다. HashSet 로드팩터 = (데이터의 개수) / (저장 공간) 로드 팩터가 클수록 공간은 넉넉해지지만 데이터를 찾는 시간이 증가한다. 주요 메소드로는 add(), contains(), remove(), size(), i..
[자바의신2 21장] 회고 Finding private 변수, getter, setter, Serializable를 구현해야만 제대로 된 DTO라고 할 수 있다. 제네릭은 실행시에 예외가 발생하는 것을 컴파일할 때 점검할 수 있도록 도와준다. 제네릭 타입의 이름 정하기 E: 요소(Element, 자바 컬렉션에서 주로 사용됨) K: 키 N: 숫자 T: 타입 V: 값 S,U,V: 두 번째, 세 번째, 네 번째에 선언된 타입 와일드카드 어떤 객체를 wildcard로 선언하고, 그 객체의 값을 가져올 수는 있지만, 와일드카드로 객체를 선언했을 때에는 특정 타입으로 값을 지정하는 것은 불가능하다. @Test void test_wildcard_setup(){ WildcardGeneric wildcard = new WildcardGeneric..
[당신은 다른 사람의 성공에 기여한 적 있는가?] 회고 책 소개 마이크로 소프트에서 17년간 일한 이소영 님이 집필했다. 책 구매 링크 동기 회사에서 진행하는 독서토론 책으로 선정되었다. Finding 성장하겠다고 마음먹는다는 것의 반대말은 하던 대로 계속하는 것이다. - 캐럴 드웰 - 일은 상황에 따라 달라진다. 회사가 나를 버리면 끝이다. 하지만 업은 일 너머에 있는 본질이다. 내가 어떤 가치를 만들어 내는가에 대한 답이다. Feeling 나와 우리를 살리는 일터 밖 파트너십 128p 나에게 들어오는 모든 인풋을 글로써 공유하는 습관을 가지자 사법시험 7 수생, 시민 개발자로 거듭나다 132P 문과생을 위한 AI라는 커뮤니티를 보고 현재 내가 함께 하고 싶은 사람들을 위한 커뮤니티를 만들어보고 싶다는 생각을 했다 파트너십 플랫폼 만들기 질문 리스트 163..
[자바의신2 20장] 회고 Finding OutOfMemoryError(OOME) : 프로그램을 잘못 작성하여 메모리가 부족한 경우 발생한다. StackOverflowError : 호출된 메소드의 깊이가 너무 깊어 스택이 가득 찬 경우 발생한다. Character 클래스를 제외하고는 parse타입 이름(), valueOf() 메소드를 제공한다. parse타입 이름() 메소드는 String 값을 인수로 받아 타입에 알맞은 숫자 기본 자료형으로 리턴한다. valueOf() 메소드는 String 값을 인수로 받아 타입에 알맞은 숫자 참조 자료형으로 리턴한다. 돈과 같이 중요한 연산을 할 때에는 정수형은 BigInteger, 소수형은 BigDecimal을 사용해야 정확하다. BigIneger와 BigDecimal을 java.lang.Nu..
[자바의신2 19장] 회고 자바의 역사 Finding java는 1991년 "Green" 이라는 프로젝트가 생기면서 자바의 모태가 탄생했다. James Gosling, Mike Sheridan, Patrick Naughton TV와 시청자가 서로 상호 작용할 수 있는 것을 만들기 위해 시작했다. 1992년 고슬링의 사무실 앞에 있는 참나무를 보고 언어 이름을 "Oak"라고 지었다. 1995년 "Oak"라는 이름이 커피의 한 종류를 뜻하는 "Java"로 바뀌면서 자바 기술이 시작했다. WORA(Write Once, Run Anywhere)라는 모토로 만들어졌다. 1996년 JDK 1.0이 출시되었다. 1998년 12월 "J2SE"라는 이름으로 자바의 기본 명칭이 변경되며 J2SE 1.2가 출시되었다. J2SE는 Java 2 Stan..