Programming 13
JVM이 무엇이고 구조에 대해 알아보자
JVM (Java Virtual Machine) = 자바 가상 머신자바 코드를 컴파일 해서 .class 바이트 코드로 만들면 해당 코드는 JVM 환경에서 실행된다. JVM의 이점C언어와 비교해보았을 때, C언어로 작성된 Test.c 소스 코드를 컴파일 할 때 운영체제에 따른 각각의 컴파일러를 적용시켜야 한다. 예를 들어 Test.c 소스 코드를 윈도우 운영체제 환경에서 컴파일 할 때는 윈도우 컴파일러를 사용해야하며, 리눅스 환경에서 컴파일을 할 때는 리눅스 컴파일러를 사용해야 한다.하지만 Java는 운영체제 환경과 상관 없이 통합된 자바 컴파일러를 사용할 수 있다. 윈도우, 리눅스와 같은 서로 다른 운영체제여도 컴파일을 할 때는 동일한 하나의 자바 컴파일러를 이용해서 자바코드(Test.java)를 바이트..
Programming/Java | 2025. 5. 10. 00:06
원시타입과 참조 타입
자바에서 자료 타입은 원시타입(Primitive Type)과 참조타입(Reference Type)으로 나뉜다.이 두가지 타입 간에는 분명한 차이가 존재하며 필요에 따라 사용되는 것이 다르기 때문에 차이를 이번 공부로 확실히 알아둘 것이다. ⚫️ 원시 타입(Primitive Type)논리형booleantrue / false문자형char 정수형byte-128 ~127 short-32768 ~ 32767 int-2147483648 ~ 2147483647 long-9223372036854775808 ~ 9223372036854775807실수형float1.4E-45 ~ 3.4028235E38 double4.9E-324 ~ 1.7976931348623157E308 정수, 실수, 문자, 논리 리터럴 등의 실제 데이터..
Programming/Java | 2025. 5. 4. 02:32
안티패턴이 무엇이며 어떻게 피할까
개발하면서 기능적으로는 문제가 되지 않지만 작성한 코드에 구조적으로 문제가 되어 유지보수나 확장성 면에서 문제가 되는 듯한 코드를 작성해 본적이 있다. 우리는 이를 안티 패턴이라고 한다. 이러한 안티 패턴을 피하기 위해서는 안티패턴에 어떤 것이 있고 해결을 어떻게 하는 것이 좋은지에 대해 공부한 내용을 작성해보려고 한다. 안티 패턴 종류01. 스마트 UI스마트 UI란 UI 레벨에서 데이터 입출력, 비즈니스 로직, 데이터베이스와 통신하는 코드 모두 처리하는 것을 의미한다.백엔드에서 UI란백엔드 API를 의미한다.백엔드 서버의 사용자인 프런트엔드 개발자나 협력 서비스 백엔드와 의사 소통하기 위해 사용되는 인터페이스가 API 이기 때문에 일반적인 UI와의 공통점인 누군가에게 소프트웨어를 사용하는 방법을 알려주..
Programming/Spring | 2025. 4. 5. 02:24
순환 참조를 줄인다는 것
Spring으로 프로젝트를 개발하다보면 엔티티 클래스를 구현 할 때 서로 연관성 있는 두개의 엔티티를 연결하기 위해 양방향 매핑을 종종 사용하게 된다. 이를 사용한 이유는 추후 두개의 객체에 접근하려 할 때 쉽게 접근이 가능했기 때문이다.내가 이번에 공부한 내용은 순환 참조에 대한 내용인데, 내가 종종 사용했던 양방향 매핑과 순환 참조는 연관성이 있었다!순환 참조가 무엇이고 이를 사용할 경우 어떤 문제점과 해결을 어떻게 하면 좋을지에 대해 작성해보려한다. 순환 참조란두 개 이상의 객체나 컴포넌트가 서로를 참조함으로써 의존 관계에 사이클이 생기는 상황을 말한다.순환 참조가 발생한 코드 예시@Data@NoArgsConstructor@Entity(name = "event")class EventEntity { ..
Programming/Spring | 2025. 3. 31. 18:14
의존성에 대해서
최근에 공부하고 있는 주제가 의존성이다.스프링을 다루면서 자주 언급되는 개념 중 하나인데, 의존성에 대해서 공부하게 되면 시스템 설계를 할 때 생각해 볼 것들이 많을 것 같아 눈여겨 보는 중이다! 의존이란?의존은 다른 객체나 함수를 사용하기만 해도 의존이라고 한다.이때 어떤 객체나 코드를 사용하기만해도 결합이라는 것이 생긴다고도 한다.우리는 의존성이나 결합도를 낮출수록 좋은 코드라고 할 수 있다. 의존성을 낮추려면?의존성 주입이라는 기법을 사용한다.의존성 주입이란 필요한 의존성을 외부에서 넣어주는 것을 의미한다. 의존성이 높은 코드class HambugerChef { public Food make() { Bread bread = new WhatBread(); Meat meat = new Beef();..
Programming/Java | 2025. 3. 20. 22:35