본문 바로가기 메뉴 바로가기

nullnull한 인생

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

nullnull한 인생

검색하기 폼
  • 분류 전체보기 (35)
    • 프로그래밍 (22)
      • 책 (9)
      • 메모 (13)
    • 일상 (11)
      • 육아 (1)
      • 수기 (7)
      • 메모 (3)
  • 방명록

전체 글 (35)
2021년도 회고

2년차가 영 부실하게 마무리되는 것 같아 회고를 미루고 미루다 3월이 오기 전에 작성한다. 코로나로 인해 첫 직장에서 사업 수주가 어렵게 됬고 6인의 개발팀이 3인으로 줄어들었다. 3월달 연봉협상으로 2600 -> 2940 가치 상승, 6월 말 개발자의 첫 발을 떼게 해준 회사를 퇴직했다. 첫 연봉 협상을 하면서 어필한건 1. 부장,과장,퍼블리셔가 맡던 업무를 인수인계 받았지만 야근을 해가면서 인력 누수를 커버한 것 2. 메뉴얼이 없던 업무는 메뉴얼로 작성한 것 3. 기획팀의 퇴사로 기획자의 업무도 같이 수행한 것 이런것이었지만 이 정도로는 S급 업무 수행으로 쳐줄 수 없다는 사유로 요구한 3000만원에서 2940만원으로 통보받았다. 6월말 지금의 회사로 이직하게 됬다. (연봉은 훨씬 점프했다.) 돌이켜..

일상/수기 2022. 2. 21. 01:30
[이펙티브 자바, Effeective Java] 10장 예외

69 예외는 진짜 예외 상황에만 사용하라 예외는 (그 이름이 말해주듯) 오직 예외 상황에서만 써야 한다. 절대로 일상적인 제어 흐름용으로 쓰여선 안 된다. 잘 설계된 API라면 클라이언트가 정상적인 제어 흐름에서 예외를 사용할 일이 없게 해야 한다. 70 복구할 수 있는 상황에서는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라 자바는 문제 상황을 알리는 타입(throwable)으로 검사 예외, 런타임 예외, 에러, 이렇게 세 가지를 제공한다. 각 방식을 언제 사용할지 참고할 수 있는 지침들을 살펴보자. 호출하는 쪽에서 복구하리라 여겨지는 상황이라면 검사 예외를 사용하라. → 메서드 선언에 포함된 검사 예외 각각은 그 메서드를 호출했을 때 발생할 수 있는 유력한 결과임을 API 사용자에게 알려주..

프로그래밍/책 2022. 2. 4. 11:36
[이펙티브 자바, Effeective Java] 9장 일반적인 프로그래밍 원칙

57 지역변수의 범위를 최소화하라 지역변수의 범위를 줄이는 가장 강력한 기법은 ‘가장 처음 쓰일 때 선언하기’다. 거의 모든 지역변수는 선언과 동시에 초기화해야 한다. 초기화에 필요한 정보가 충분하지 않다면 충분해질 때까지 선언을 미뤄야 한다. *try-catch문은 이 규칙에서 예외다. 변수를 초기화하는 표현식에서 검사 예외를 던질 가능성이 있다면 try 블록 안에서 초기화해야 한다. 지역변수 범위를 최소화하는 마지막 방법은 메서드를 작게 유지하고 한 가지 기능에 집중하는 것이다. 반복문에서는 반복 변수의 범위가 반복문의 몸체, 그리고 for 키워드와 몸체 사이의 괄호 안으로 제한된다. for (Element e : c) { ... // e로 무언가를 한다. } for (Iterator i = c.it..

프로그래밍/책 2022. 1. 25. 12:38
[이펙티브 자바, Effeective Java] 8장 메서드

49 매개변수가 유효한지 검사하라 오류가 발생한 즉시 잡아내지 못하면 해당 오류를 감지하기 어려워지고 감지하더라도 발생 지점을 찾기 어려워진다. 메서드 몸체가 실행되기 전에 매개변수를 확인한다면 잘못된 값이 넘어왔을 때 즉각적이고 깔끔한 방식으로 예외를 던질 수 있다. 매개 변수 검사를 제대로 하지 못하면 다음과 같은 문제가 생길 수 있다. 메서드가 수행되는 중간에 모호한 예외를 던지며 실패할 수 있다. 메서드가 잘 수행되지만 잘못된 결과를 반환할 수 있다. 메서드는 문제없지 수행됬지만 어떤 객체를 이상한 상태로 만들어놓아서 예상할 수 없는 시점에 이 메서드와 관계 없는 오류를 낼 수 있다. *public과 protected 메서드는 매개변수 값이 잘못됐을 때 전디는 예외를 문서화해야 한다.(보통은 Il..

프로그래밍/책 2022. 1. 19. 00:58
[이펙티브 자바, Effeective Java] 7장 람다와 스트림

42 익명 클래스보다는 람다를 사용하라 Collections.sort(words, new Comparator() { public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } }); 위 코드는 문자열을 길이순으로 정렬한다. 이 때, 정렬을 위한 비교 함수로 익명 클래스를 사용한다. 익명 클래스 방식은 코드가 너무 길기 때문에 함수형 프로그래밍에 적합하지 않아 보인다. 위 코드를 람다로 바꾼 모습을 살펴보자. Collections.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length())); 여기서 람다, 매개변수, 반환값의 타입은 각각 ..

프로그래밍/책 2022. 1. 4. 22:35
[이펙티브 자바, Effeective Java] 6장 열거 타입과 어노테이션

34 int 상수 대신 열거 타입을 사용하라 정수 열거 패턴은 타입 안전을 보장할 방법이 없으며 표현력도 좋지 않다. 비교되는 단점 수은(mecury)과 수성(mecury)를 동시에 사용해야할 경우 각각 이름을 달리 설정해야한다. 컴파일하면 그 값이 클라이언트 파일에 그대로 새겨지기 때문에 상수의 값이 바뀌면 클라이언트도 반드시 다시 컴파일해야 한다. 문자열로 출력하거나 디버거로 살펴보면 단순히 숫자로만 보이기 때문에 도움이 되지 않는다. 위 문제점을 해소할 수 있는 열거 타입은 아래와 같이 사용한다. public enum Apple {FUJI, PIPPIN, GRANNY_SMITH} public enum Orange {NAVEL, TEMPLE, BLOOD} 열거 타입은 클래스 밖에서 접근할 수 있는 생..

프로그래밍/책 2021. 12. 28. 12:21
[이펙티브 자바, Effeective Java] 5장 제네릭

26 raw type은 사용하지 말라 클래스와 인터페이스 선언에 타입 매개변수가 쓰이면 이를 제네릭 클래스 혹은 제네릭 인터페이스라 한다. 예를 들어 List은 원소의 타입이 String인 리스트를 뜻하는 매개변수화 타입이다. 여기서 String이 정규 타입 매개변수 E에 해당하는 실제 타입 매개변수다. 제네릭 타입을 정의하면 그에 딸린 raw type도 함께 정의된다. raw type이란 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않을 때를 말한다. 예를 들어 List의 raw type은 List다. raw type은 타입 선언에서 제네릭 타입 정보가 전부 지워진 것처럼 동작하는데, 제네릭이 보편화되기 전 코드들과 호환되도록 하기 위한 궁여지책이라 할 수 있다. 오류는 가능한 즉시, 컴파일할 때 발..

프로그래밍/책 2021. 12. 22. 08:57
[이펙티브 자바, Effeective Java] 4장 클래스와 인터페이스

아이템 15 클래스와 멤버의 접근 권한을 최소화하라 정보 은닉의 장점 시스템 개발 속도를 높인다. 시스템 관리 비용을 낮춘다. 성능 최적화에 도움을 준다. 소프트웨어 재사용성을 높인다. 큰 시스템을 제작하는 난이도를 낮춘다. * 시스템을 구성하는 컴포넌트들을 서로 독립시켜서 개발, 테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 있게 해준다. 정보은닉을 위한 다양한 장치 중 하나인 접근제어를 사용하는 기본 원칙은 모든 클래스와 멤버의 접근성을 가능한 좁히는 것이다. 클래스의 공개 API를 세심히 설계한 후, 그 외의 모든 멤버는 private로 만들자. 아이템 16 public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 public 클래스라면 위 방식보다 아래 방식을 지향하도..

프로그래밍/책 2021. 12. 20. 00:31
이전 1 2 3 4 5 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 토이프로젝트 회고
  • 스프링부트 젠킨스
  • webhook
  • nginx to tomcat
  • 오라클
  • CI/CD
  • github webhook
  • jenkins webhook
  • spring boot jenkins
  • 젠킨스 자동 배포
  • nginx to 내장톰캣
  • 국비 프로젝트
  • nginx 톰캣 설정
  • github webhook jenkins
  • 스프링부트 자동배포
  • 젠킨스 웹훅
  • slack
  • springboot jpa
  • 오라클 계정 오류
  • nginx to springboot tomcat
  • oracle.jdbc.driver.T4CConnection.isValid(I)Z
  • HTML
  • 깃허브 웹훅 젠킨스
  • spring boot
  • oracle
  • nginx 내장톰캣 설정
  • java.lang.AbstractMethodError
  • springboot
  • nginx 내장톰캣 연결
  • GitHub
more
«   2025/05   »
일 월 화 수 목 금 토
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 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바