개발을 하다보면 진짜 별의별 에러를 다 마주친다. 그나마 컴파일 에러로 IDE에서 잡아주면 다행이지만 런타임 에러는 실행시켜보고 여러 가지 테스트를 해봐야 에러를 마주할 수 있고 예외 처리를 할 수 있다. 우리는 이것을 에러, 예외라고 부르며 공통적으로는 Exception이라고 부른다. 이 Exception도 두 부류로 나뉠 수 있다는 것을 이번에 알게 되었다. 또한 이 Exception 부류로 인해 기본 transaction 처리를 할 수 있게 된다. Checked Exception 외부 요인에 의해 발생할 수 있는 Exception이다. RuntimeException 자시 자신을 포함해 상속 받지 않은 모든 Exception들이 해당된다. (Exception또한 checked Exception에 해당..
개발을 하다보면 AOP 적용을 위해서 별도로 커스텀 어노테이션을 만들어야할 일이 생긴다. 물론 AOP 적용을 패턴을 통해 적용시킬 수 있지만 같은 공통 기능을 사용해야하는 메소드들에 공통점이 없다면? 커스텀 어노테이션을 만들어서 해당 메소드에 공통 기능을 사용하겠다고 표시를 해 AOP 설정을 할 수 있다. Annotation(어노테이션) 이란? 그렇다면 먼저 어노테이션이란 무엇인지 개념을 살짝 짚고 가보자. 개발을 하다보면 @Getter, @Setter 등의 어노테이션을 자연스럽게 사용하고 있다. 하지만 그래서 어노테이션이 뭔데요? 라고 누가 물어보면 설명을 잘 할 수 없을 때가 있다. 그래서 어노테이션이란 무엇인가? 간단하게 설명하면 일종의 메타 데이터를 의미한다. 해당 데이터를 바탕으로 자동으로 기능..
개발을 하다보면 String Number(int, float, double)로 형변환을 할 일이 많다. 전에는 이런 형변환을 아래와 같이 parse() 함수를 이용해서 수행했었다. String s = "3"; Integer.parseInt(s); Float.parseFloat(s); Double.parseDouble(s); s가 빈 문자가 아니라는 확신이 있다면 위 코드는 문제가 없다. 하지만 만일 빈 문자가 들어올 수도 있는 값을 Number 타입으로 변경해야한다면 아래와 같은 에러가 발생한다. String s = ""; // 또는 s 등과 같은 숫자가 아닌 문자 Integer.parseInt(s); java.lang.NumberFormatException: For input string: "" 또한 ..
처음 코딩을 할 때 자바를 다운로드 받으면서 할 수 있는 실수가 하나 있다. 바로 jdk가 아닌 jre를 다운로드 받는 실수인데, jre를 다운로드 받아도 간단한 코딩 정도는 가능하지만 계속 코딩을 하다보면 에러가 발생할 수 있다 그건 바로 jre가 아닌 jdk를 다운로드 받아서 프로젝트에 jre를 사용하겠다고 설정해놔서 생기는 에러인데, 그렇다면 jre와 jdk는 무엇이 다른걸까? (참고로 인텔리제이의 경우는 미리 jdk를 다운로드 받지 않아도 프로젝트를 생성하고 사용하면서 필요한 jdk를자동으로 다운로드 해주므로 이와 같은 에러를 마주할 일이 없다.) JRE(Java Runtime Environment)란? JRE란 번역하면 자바 실행환경으로 자바 프로그램을 실행하는데 필요한 것이다. 즉, 자바 프로..
git 히스토리 및 pull request를 날렸을 때 comflict 나는 것을 쉽게 고칠 수 있는 장점 덕분에 소스트릐를 사용하고 있다. 하지만, 어느 날 소스 트리에서 풀을 받으려고 하니까 아래 에러가 발생하면서 풀이 받아지지 않았다. Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 이건 소스트리에서 git 사용자 인증 하는 방법을 사용자 이름(이메일)과 비밀번호로 하는 방식에서 토큰 방식으로 2021년 8월 13일부터 정책을 바꿨기 때문에 발생하는 일이다. 해당 정책 변경에 대해서 메일을 받았었으나 토큰 방식으로 바꾸지 않아서 위와 같은 에러가 발..
스트림(Stream)이란? FileInputStream과 같은 I/O 스트림과는 다른 개념이다. (I/O 스트림은 데이터 가져오기와 내보내기를 하는 일종의 통로 역할을 하는 것이다.) 스트림은 간단하게 한 줄로 요약하면 데이터 집합을 읽는 객체라고 생각하면 된다. 데이터들을 모두 읽는 객체인만큼 데이터들을 다루는데 공통적으로 쓰일만한 기능들(정렬, 필터링, 반복문 등)을 가지고 있다. list.stream().forEach(System.out::println); 참고로 스트림은 자바 8부터 지원하고 있다. 스트림(Stream) 특징 스트림은 Stream이라는 별도 객체로 기능을 이용할 수 있으며 3가지의 큰 특징이 있다. 이 특징들 때문에 컬렉션 함수를 사용하지 않고 스트림을 사용한다. 1. 데이터 소스..
자바로 코딩을 하다보면, 하다못해 Map 컬렉션을 쓰다보면 아래와 같이 '' 안에 정확한 type을 명시하는 것을 볼 수 있다. 이것은 바로 제너릭(Generic)라는 것으로 자바에서 타입을 좀 더 유연하게 받고 사용하기 위한 기능이다. Map map = new HashMap(); 제너릭(Generic)이란? Map과 같이 Object 타입이면 또는 어떤 객체를 상속 받은 하위 객체이면 무조건 사용할 수 있을 때 해당 타입을 와일드카드와 같이 다양한 정해진 범위의 다양한 타입으로 유연하게 사용할 수 있도록 정의된 일종의 키워드 같은 것이다. 참고로 제너릭은 자바 5부터 사용 가능하다. 예를 들어 아래와 같이 클래스에서 특정 필드애 대해서 호출자가 정의한 타입으로 해당 필드를 사용하고자 할 때 사용할 수 ..
요즘 같이 인증 업체에서 인증을 받아 고객 회원가입을 하는 서비스가 많은 만큼 개발을 하다보면 CI라는 것을 많이 마주하게 된다. 또한 CI에 대해 알아보다보면은 DI도 많이 대조되게 되는데 과연 CI와 DI는 무엇일까? CI(Connection Information)란? CI는 연계 정보를 뜻한다. NICE와 같은 인증 업체에서 인증 받으면 발급되는 88byte의 숫자와 대소문자가 합쳐진 키 값으로 일종의 온라인 주민등록번호라고 보면 된다. 2014년 8월부터 주민등록번호를 수집하지 못하도록 주민등록번호 수집 금지 제도가 시행되어 옛날에는 가입할 때 주민등록번호로 본인인증을 했던 것을 이제는 휴대폰과 공인인증서 등의 본인인증을 하고 있다. ‘주민번호 수집 법정주의’ 신설 및 처리기준 강화 (제24조의2..
- Total
- Today
- Yesterday
- postgres
- 공간데이터
- ssh
- enum
- DATABASE
- 스프링부트
- annotation
- 메시지큐
- eclipse
- 캐싱
- springboot
- Spring
- rabbitmq
- Intellij
- 자바
- Java
- HttpClient
- 어노테이션
- Caching
- mockito
- PostgreSQL
- JPA
- 데이터베이스
- 캐시
- DB
- 이클립스
- MAC
- 역직렬화
- cache
- k8s
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |