Java

    exception VS error 차이가 무엇인가요?

    📝느낀 점 나는 백엔드 개발자를 한다면 정말 중요하게 생각드는 부분이라고 생각든다. 하지만, 매번 까먹고 다시 공부하고 하면서 문제의 심각성을 알게 되었다. "왜, 매번 까먹지?" 내가 생각한 결론은 한번도 예외처리에 대해 글로만 공부하고 직접 사용해보지 않아서 인것 같다. 물론, 사람들마다 다르겠지만, 나란 사람은 직접 코드로 작성해보고 "이건 이렇게 되는구나 실행해보고" 하면서 머리에 자리 잡혀 또 이렇게 부족한 나의 포스팅들이지만 계속 수정해 가며 살을 붙일 수 있는 블로그인이 될수 있도록 하겠다. 체크 예외 같은 경우, 개발자가 실수로 예외를 까먹지 않도록 컴파일 시점에 문제를 잡아주는 안전 장치라고 생각 할수 있다. 언체크 예외 같은 경우 컴파일러가 체크 하지 않는 언체크 예외이다. "체크를 왜..

    불변 객체나 final을 굳이 사용해야 하는 이유가 있나요?

    📝느낀 점 final 키워드를 볼때마다 항상 이거 왜 쓰는거지? 의문점이 있었다. 즉, "결국 내가 수정 안하면 되는거 아냐?" "그러면 값 수정 될일 없을거 아냐?" 하는 생각을 항상 가지고 있었다. 하지만 역시 사람은 아는 만큼 보인다고 내가 아는게 없으니 저정도의 생각만 했던 것이 아닐까 생각든다. 그리하여 final 키워드를 사용함으로써 클래스들끼리의 상속 못하게 할수도 있다는 장점이 있고, 메소드 오버라이딩을 못하게 만들수도 있습니다. 또한 값이 변경되면 안되는 데이터를 누군가(협업)의 실수로 인해 변경되는 것을 미리 방지 할수 있습니다. final 키워드를 사용한다면? final 키워드를 사용할 수 있는 곳은 3군대로 정의 할 수 있다. 변수 메서드 클래스 하지만, final이라는 것은 무엇가..

    equals, hashCode 메서드는 왜 사용하나요?

    📝느낀 점 우테코 프리코스 할때가 생각난다. 한주 과제를 제출하고 나면 다른 사람들은 어떤 식으로 코드를 작성하였나? 궁금하고, 배우고 싶기에 여러 사람들의 코드를 봤던 기억이 난다. 그때 어떤 사람들은 equals, hashCode 이런 메서드들을 정의하고 사용하고 있었는데, "저게 뭘까?" 하며 구글링을 하며 찾아보며 했지만, equals, hashCode라는 것에 개념만 알게 되었다 그 뒤로 시간이 지나 자바에 대해 깊게 공부해보자는 생각에 이렇게 정리를 해본다. equals는 주소값이 달라도 문자에 대한 내용만 같다면 같다고 보는 메서드이고, hashCode은 해시 컬렉션에서 사용되며, 동일한 객체라면 동일한 해시코드를 가지고 있기에, hashCode 메서드도 같이 재정의하여 사용하게 되는 개념인..

    static에 대해 설명 / static을 사용하는 이유는?

    📝느낀 점 이렇게 자세히 몰랐던 포스팅을 하나하나 하다보면 내가 정말 기계 같은 공부를 했구나,, 라는 생각이 든다 여기서 기계란 뜻은, 그냥 책에 나와 있는대로 그 이상은 없는 그런 공부를 말이다.. static은 메모리에 고정적으로 할당 되는 것이다! 그말은 즉, 프로그램이 다 끝날때인 종료될 시점에 해제되는 변수이다 Java에서 Static 변수는 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 변수로, 메모리에 한번 할당되므로 여러 객체가 해당 메모리를 공유하게 되는 특징이 있다. 하지만 이점은 우리 자바를 쓰는 사람들인 즉, 객체지향적인 사고를 가져야 될 사람들에게는 큰 마이너스가 아닐까 생각 든다. 즉, 메모리를 공유하게 된다면 '캡슐화` 가 보장 되어야 한다는 객체지향 프로그래밍 원칙을..

    enum 사용하는 이유는 무엇인가요?

    📝느낀 점 아마, 나처럼 지금까지 공부한 사람들은 enum에 대해 알기는 알지만, 잘 사용하지도 않고, 적절하게 사용하는 곳도 자세히 몰라서 쓰지도 않는 그런 느낌이 들거라고 생각든다. (아니면 죄송합니다..) 하지만, 지금의 나는 좀 탈출하지 않았나 싶다. 우테코 프리코스 과정을 진행하면서 매번 과제를 하며 느낀 것이지만 이럴때 enum을 사용하는구나 하며 많이 알게된 것 같다. 그렇기에 enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미한다. 그리고 컴파일 타임에 타입 안정성을 보장하며 연관된 상수들을 한곳에서만 관리하면 되기 때문에 관리하기 편했던 경험이들이 있다. enum도 하나의 객체고, 하나의 클래스이다. enum도 인스턴스이다. 그리고 JVM에서 유일하게 하나만 존재하는 것이다..