코틀린과 JPA 같이 쓰지 말자
Language/Kotlin 🤖2024. 7. 25. 17:11코틀린과 JPA 같이 쓰지 말자

안녕하세요! 최근 지인들과 코틀린 스터디를 시작하게 되어서 코틀린에 대해서 학습을 해보고 있었습니다. 아직 깊이있게 이해했다라기 보다는 학습해나가는 중인데요. 자바에서 단점이라고 느꼈던 여러 문제들을 해결하기 위해 젯브레인사에서 얼마나 공들였는지 조금은 이해가 된달까요... 뭔가 Java + TS 느낌도 나구요.. ㅎㅎ 아무튼 코틀린의 매력에 빠져서 재미있게 시간을 보내고 있습니다. 스터디 과제가 자바와의 비교를 통해 코틀린에서 중요한 점을 정리해보는 것이여서 이를 정리할 겸 제가 느낀 코틀린의 첫인상과 자바와의 비교를 통한 가치를 글로써 남겨보고자 합니다. 코틀린에 대해 잘 모르는 자바 개발자가 쓴 글이니 지적은 언제나 환영입니다! 코틀린은 JPA랑 왜 같이 쓰면 안될까?기존에 자바 + 스프링 + JP..

Java static 키워드 완전 가이드
Language/Java ☕️2024. 5. 22. 17:58Java static 키워드 완전 가이드

Java로 개발하다 보면 public static void main() 같은 구문에서 자주 static 키워드를 마주하게 됩니다.하지만 정작 static이 무엇을 의미하는지, 언제 사용해야 하는지, 그리고 어떤 위험이 있는지 헷갈릴 때가 많습니다. 이 글에서는 다음 내용을 중심으로 static을 쉽게 이해할 수 있도록 정리했습니다.static 키워드가 의미하는 것static 변수와 메서드의 동작 방식static을 사용하기 좋은 상황과 피해야 할 상황대표적인 활용 예(유틸리티 클래스, 상수, 싱글톤 등)static의 장단점과 사용 시 주의할 점이 글을 읽고 나면 static을 보다 의도적이고 안전하게, 그리고 객체지향 관점에서 적절하게 활용할 수 있게 될 거에요! static이란 무엇인가?static은 클..

자바 메모리 구조 이해하기
Language/Java ☕️2024. 5. 22. 14:49자바 메모리 구조 이해하기

자바 애플리케이션의 성능을 분석하거나 메모리 문제를 해결하려면 JVM(Java Virtual Machine)의 메모리 구조를 정확히 이해하는 것이 무엇보다 중요합니다. 오늘은 아래 내용을 같이 다뤄볼게요JVM 메모리가 어떤 구조로 이루어져 있는지메서드 영역, 힙, 스택이 각각 어떤 역할을 하는지객체와 클래스 정보가 어떻게 저장되는지메서드 호출 시 스택 프레임이 어떤 방식으로 동작하는지실제 코드 예제를 통해 살펴보는 JVM 메모리의 상호작용이 글을 읽으면 자바 프로그램이 메모리를 어떻게 사용하며 실행되는지 전체 흐름을 자연스럽게 이해할 수 있을 거예요. JVM 메모리 구조가 중요한 이유 JVM 메모리를 이해하면 다음과 같은 문제를 더 정확하게 진단하고 최적화할 수 있습니다.메모리 누수나 OutOfMemor..

자바의 가비지 컬렉션(GC) 한 번에 이해하기
Language/Java ☕️2024. 2. 2. 21:46자바의 가비지 컬렉션(GC) 한 번에 이해하기

가비지 컬렉션(GC)이란?자바를 배우다 보면 한 번쯤 들어봤을 용어, 바로 가비지 컬렉션(Garbage Collection, GC)입니다. 간단히 말해, GC는 더 이상 접근할 수 없는 객체(=가비지)를 찾아내서 자동으로 메모리를 정리해주는 기능이에요.개발자가 직접 free()나 delete 같은 명령으로 메모리를 해제하지 않아도 된다는 점이죠. 이 덕분에 자바는 “메모리 안전성과 개발 생산성” 두 가지를 모두 잡을 수 있었습니다.GC가 없었다면 매번 메모리를 신경 써야 했을 테니, 개발 속도는 훨씬 느려졌겠죠. 조금 더 깊이 들어가 보면, GC는 JVM의 힙(Heap) 구조에서 작동하며수집기(Collector)의 종류나 동작 방식에 따라 성능이 달라집니다.이 부분을 이해하면 실무에서 메모리 누수나 성능..

String vs StringBuffer vs StringBuilder — 자바 문자열 클래스의 차이 완전 정리
Language/Java ☕️2024. 2. 2. 10:17String vs StringBuffer vs StringBuilder — 자바 문자열 클래스의 차이 완전 정리

자바에서는 문자열을 다루기 위해 String, StringBuffer, StringBuilder 세 가지 클래스를 사용합니다.오늘은 각 클래스의 특징, 동작 방식, 성능, 스레드 안정성, 그리고 상황별 선택 기준을 비교해볼게요! 이 글을 통해 아래와 같은 것들을 이해해볼 수 있을거에요!String이 불변(Immutable) 객체인 이유StringBuffer와 StringBuilder의 필요성과 차이상황에 맞는 문자열 클래스 선택 방법 String — 불변(Immutable)한 문자열String 객체는 한 번 생성되면 내부 값이 변경되지 않는 불변(Immutable) 객체입니다.이 덕분에 자바는 문자열을 String Pool에 저장하고, 동일한 문자열 리터럴을 재사용할 수 있습니다.String str1 =..

Double과 Float를 사용하면 안되는 이유
Language/Java ☕️2024. 2. 1. 23:41Double과 Float를 사용하면 안되는 이유

자바에서 소수(실수)를 표현할 때는 보통 float이나 double을 사용합니다.하지만 강의나 실무에서 이런 말을 자주 듣게 됩니다. double과 float 대신 BigDecimal을 사용하세요!이 말은 단순한 습관이나 규칙이 아니라, 부동소수점 연산의 정확도 문제라는 기술적인 이유가 있습니다.오늘은 다음과 같은 내용을 함께 알아볼게요.float, double에서 오차가 발생하는 이유부동소수점 표현 방식(IEEE 754 표준)의 한계BigDecimal이 이러한 문제를 어떻게 해결하는지각 자료형을 언제, 어떻게 사용해야 하는지 부동소수점 연산의 정확도 문제다음은 간단한 예제입니다.double a = 1.03;double b = 0.42;System.out.println(a - b);예상 결과는 0.61이..

image