반응형

분류 전체보기

    문자열 정수를 int 형 정수로 변경하는 atoi 함수를 자바로 구현

    C언어에서 제공하는 atoi 메서드를 자바로 구현해보자. 1234567891011121314151617181920212223242526public class Main { public static void main(String args[]) { atoi("20"); } public static int atoi(String str) { int radix = 10; byte[] temp = str.getBytes(); int result = 0; for(int i=0;i

    규칙 65 - 예외를 무시하지마라.

    사용하려고 하는 API의 설계자가 예외가 발생될 수 있다고 명시한 예외는 조심해야한다. 무시방법은 간단하게 호출하는 메서드를 빈 catch 블록이 붙은 try 문으로 감싸면, 예외를 무시할 수있다. 12345try { } catch (Exception ex) { }cs 빈 catch 블록은 예외를 선언한 목적으로 만들어진다.만약 이렇게 빈 catch 블록을 만들려고 하는 경우에는 적어도 왜 넘겼는지 주석을 달아주는 것이 좋다. 출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙65

    규칙 64 - 실패 원자성 달성을 위해 노력하라.

    예외가 발생한 다음에도 기존에 사용하던 객체의 상태가 그대로 유지되는 것이 좋다.쉽게 이야기하면, 메서드 호출이 정상적으로 처리되지 못한 객체의 상태는 메서드 호출 전 상태와 동일해야한다. 이런 속성을 만족하는 메서드는 실패 원자성(failure atomicity)을 갖추었다고 한다. 이런 실패원자성을 해소하기 위한 방법을 알아보자. 먼저 간단하게 변경 불가능 객체로 설계하는 것이다.-> 왜냐하면 원자성이 있는 객체는 생성된 이후에는 변경되지 않기 때문에 오류가 발생한다고 해도 원자성이 깨지지 않는다. 그럼 변경 가능한 객체의 경우 어떻게 해야할까?-> 이는 실제 연산을 수행하기전에 인자 유효성을 미리 검사하는 방법이다. (객체가 변경되기 전에 예외를 발생시켜 발생하는 것을 막는것이다.) 아래 예를 살펴..

    라이먼 레이몬즈 주연 데드풀2 후기

    ​ 라이먼 레이몬즈 주연에 데드풀을 재작년인가 보았을때 재밌었어서 데드풀 2가 개봉하자 보러갔다. 데드풀1보다 더 잔인하고 자극적이었다. 미국식 코미디가 나에게 그렇게 재밌지는 않은건지 이번 데드풀2는 나하고 맞지 않았다. 엑스맨을 보지 않아서 그런가 ㅋㅋ 평점은 7점정도. 쿠키영상은 1개있다.

    lombok 사용시 Generating equals/hashCode implementation 에러 수정방법

    lombok 사용할 때 다음과 같은 에러를 본적이 있을 것이다. [에러내용]Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. 이 에러는 상속을 받은 자식클래스에 발생하는 에러로서 다음과 같이 해결해줄 수 있다 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package c..

    mac환경에서 spring boot에 lombok 설치하기

    Lombok 소개 lombok은 모두다 알다시피 getter, setter, construct등 계속해서 추가되어야하는 코드를 어노테이션을 이용하여 자동으로 생성해주는 기능을 제공하는 라이브러리이다. 설치홈페이지에 우선 jar 파일을 다운로드 받는다.https://projectlombok.org/download 다운받은 jar파일을 실행하면 자동으로 ide를 찾아서 설정해준다.설치를 완료하면 다음과 같이 ini에서 설치 여부를 확인할 수 있다.

    Java List 인터페이스 중 CopyOnWriteArrayList 소개

    자바에는 크게 4개의 List 인터페이스를 구현한 클래스가 있다. - Vector, ArrayList, LinkedList, CopyOnWriteArrayList 그 중 가장 생소한 이름이 있는데 CopyOnWriteArrayList이다. CopyOnWriteArrayList는 그냥 ArrayList랑 다르길래 화려한 이름을 가지고 있는걸까? ArrayList vs CopyOnWriteArrayList 일반 ArrayList의 경우 스레드에 안전하게 설게되어 있지 않기때문에 만약 스레드 처리가 필요한 List의 경우에 Vector를 사용하거나 ArrayList에 synchroized를 사용하여 처리하였다. 하지만 자바 1.5부터 있던 CopyOnWriteArrayList를 쉽게 이문제를 해결할 수 있다...

    Spring, spring-boot의 mvc 다양한 설정 설명

    Spring에서 사용하는 다양한 설정이 존재한다. 그 설정들에 대한 정리가 필요할 것같아서 한번 정리해 보았다. ※ 스프링 MVC 사용을위한 설정- 기존에 스프링 MVC 설정을 위해서 xml 파일에 다음과 같이 설정하였다. 하지만 대부분의 설정이 xml에서 java로 변경하는 추세에서는 다음과 같이 설정한다.12345@Configuration@EnableWebMvcpublic class WebConfig { }cs여기서 추가적인 기본 설정들을 커서텀하고 싶을 경우 WebMvcConfigurerAdapter 추상클래스를 상속받아 재정의하여 사용했다.12345@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter { ..

    Deque를 통해 버킷정렬(Bucket Sort)을 해보자.

    저번시간에 만들었던 Deque를 사용하여 버킷정렬을 연습해보기로 했다. 우선 버킷정렬이 무엇인지 알아보자. 버킷정렬(Bucket Sort) 이란?? n개의 데이터를 정렬할 때 같은 크기의 간격을 갖는 n개의 버켓에 데이터를 분배한다. 입력 데이터가 균일하게 분포되었다면 각 버켓에는 1개의 데이터가 있게 되지만, 균일하게 분포되지 않으면 다수의 데이터가 버켓에 들어 갈 수 있으며 각 버켓의 데이터는 정렬하여 저장한다. n개의 모든 데이터를 버켓에 분배하였다면 버켓 번호 순으로 스캔하여 출력하면 정렬된 데이터를 얻게 된다. [예제] 최대 2자리를 갖는 정수 (0부터 99까지의 정수) 10개를 버켓 정렬한다고 하자. 각 버켓은 같은 크기의 간격 (0-9, 10-19, 20-29,…, 90-99)을 갖는 10개..

    강동구 스시와 나가사끼 짬뽕 맛집 스시코우 후기

    길동역에서 병원을 들렸다가 오는길에 배가고파서 밥집을 찾던중 인터넷에서 맛집으로 티비까지 방영이된 스시코우에 왔다. ​ 가격은 오늘의 스시는 10피스에 만원이고 12피스에 12000원이다. 짬뽕이 8000원인데 진짜 완전 맛있다. 매주오고 싶은맛이다. ​​ 다음주에도 와야지 존맛탱

반응형