Java

    클래스와 메소드의 사용 이유는 무엇인가요?

    📝느낀 점 문법 따라, 이렇게 사용하는거구나 하며 사용하였지만, 그래도 이제는 클래스와 메소드를 왜 사용하는가에 대한 정의를 하고 가는것이 좋겠다는 생각에 이렇게 정리하게 되었다. 정리하기전에 "클래스와 메소드 사용이유가 뭔가요?" 질문을 나 자신에게 물어봤는데, 정확히 답하지 못했다.. 헣.. 클래스는 객체를 정의하는 틀 또는 설계도같은 의미로 말할 수 있겠으며, 메소드는 코드에서 중복된 부분들을 하나의 메서드로 만들어 중복 코드를 줄일 수 있다는 큰 강점이 있다. 클래스(class)란? 자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다. 자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 된다. 클래스는 객체의 상태를 나타내는 필드(field..

    char타입은 정수인가요?

    📝느낀 점 코딩테스트 문제를 풀다가, char타입이 int형으로 대입이 가능하고, 반대로 int타입이 char타입으로 대입 가능하고,, 이게 무엇인가 싶었다. 분명 문자인데..? 이게 왜 가능한거지? 에 대한 생각이 컸기에, 관심을 가지고 나의 블로그에 글을 남긴다. char는 기본형 타입에서 문자 타입으로 분리 되었다고 하지만, 사실상 2 바이트 정수라는 것이다. 그리고 중요한 아스키코드 덕분에 이렇게 가능하게 된 것이라고 이해하고 있다. 팩트는 실제로 컴퓨터는 문자를 구별할 수 없다. 즉, 컴퓨터 안에는 절대 문자가 저장될 수 없을뿐더러, 모든 것이 숫자로 저장되는 것이다. 그렇다면 char는 대체 어떻게 저장되나요? 사람과 컴퓨터가 언어를 교환하기 위해서 만들어진 코드가 있다.대표적인 아스키코드가 ..

    String 객체를 생성하는 방법과 내부 동작 원리 (String Pool)

    📝느낀 점 String 객체를 생성하는 방식에 대해 리터럴 방식과 new 연산자 방식이 있다는 것을 알고 있었지만, 정확히 JVM 내부 동작 원리까지는 전혀 알지 못하고 있었다. 솔직하게 JVM까지 알아야 되는건가 하는 생각이 컸다, 하지만 예전의 나와 현재 내부 동작을 알게된 후로는 생각 방식 자체가 달라졌다는 것이다. 어떤식으로 저장 되는지, 어떤식으로 가져와 지는지, 메모리 관리 부분에 대해 더 깊이 알게 되어 좀 더 전문성이 생기지 않았나 하는 기분도 들게 되었다. 중요한것은 string에 대한 지식이 생겨 어떻게 String을 사용 시 메모리 및 시간에 대한 낭비가 발생하지 않을까? 하는 생각도 하게 되었다. 앞으로도 JVM에 더 깊은 공부를 해야 겠단 생각을 한다. 두 가지 방법이 있습니다. ..

    생성자를 왜 만들어야 하나요? / 컴파일러는 왜 기본 생성자를 자동으로 생성해 주나요?

    📝느낀 점 "객체 생성시, 초기화 시 필요한 메서드이다." 정도만 알고 있었지. 존재 이유가 무엇인지, 내가 알고 있는 것이 확실한건지, 중요한 포인트를 잊고 있는것이 아닌가? 하는 생각이 들어 이번 기회에 정리하게 되었다. 확실한건 내가 생성자를 만들지 않아도 굳이 왜, 컴파일러가 자동으로 생성자를 생성해 주는지에 대해 깊이 생각해보지 못했다는 것이다. 이 답변에 대한 이유는 내가 생각하기에, 상속 관계에 대한 호환성이라고 생각한다. "상위 - 하위" 상속관계인 클래스가 있다면, 하위 클래스에서 상위 클래스인 생성자 즉, 초기화시 사용해야 될 부분이 있을수도 있기에 컴파일러는 이런 부분에 있어서 프로그램이 종료 되지 않도록 미리 방지 시켜주는 것이라고 알게 되었다. 생성자 생성자는 클래스와 같은 이름의..

    DTO를 만들어 두면 무슨 장점이 있나요?

    📝느낀 점 프로젝트 만들때, "아, 남들 전부 DTO라는걸 만들어서 하는구나" 하고 나또한 그냥 따라 치기 바빴다. 그리하여 이번 글을 작성하면서 DTO가 무엇인지, 왜 사용하는지, 이걸 사용함으로서 이점은 무엇인지 공부하였다. 즉, DTO라는 것은 데이터 교환을 위한 객체를 의미한다. 더 확실한 이유는 생성자 때문인 것이다. 객체를 생성할 때 유저의 정보를 당연히 전부 알면 좋겠지만, 그렇지 못할 상황도 있다. 그렇기에, 복잡한 애플리케이션에서 많은 이점을 제공한다는 것이다. DTO란? 계층간의 데이터 교환을 위한 객체를 말합니다. 데이터를 전달하기 위해 사용하는 객체이다. 데이터 담아서 전달하는 바구니 오직, 게터, 세터 메서드만 갖는다 다른 로직은 갖지 않는다 DTO는 일반적으로 데이터 전송 및 객..