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

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

자바의 static
Language/Java ☕️2024. 5. 22. 17:58자바의 static

자바를 사용해 코딩을 하다보면 static 이라는 키워드를 보게 됩니다!대표적으로 public static void main() 과 같은 구문에서도 볼 수 있죠! 오늘은 이 static 키워드가 무엇을 의미하고 어떻게 동작하는지 알아보겠습니다! 자바의 static자바에서 static 키워드는 클래스 수준에서 변수를 선언하거나 혹은 메서드를 정의할 때 사용합니다.static의 사용을 통해 클래스의 인스턴스에 속하는 것이 아닌 클래스 자체에 속하는 멤버를 만들 수 있습니다.예를 들어볼까요?static 변수static 변수는 정적 변수 혹은 클래스 변수라고도 합니다. 클래스의 모든 인스턴스가 공유하는 변수 입니다.public class Counter { private static int count = 0..

자바의 메모리 구조
Language/Java ☕️2024. 5. 22. 14:49자바의 메모리 구조

자바 어플리케이션의 성능을 확인하고 개선하기 위해선, 자바 메모리 구조에 대한 이해가 필요합니다.자바의 메모리 관리를 잘 하기만 하더라도 어플리케이션이 더욱 효율적으로 실행 될 수 있죠! 자바의 메모리 구조 자바의 메모리 구조는 크게 3가지로 나눌 수 있습니다.메서드 영역: 이 영역은 모든 스레드가 공유하는 메모리 영역으로, 클래스 수준의 정보(클래스 로더에 의해 로드된 클래스와 인터페이스의 메타데이터), 정적 변수를 저장하는 static 영역, 상수를 저장하는 Constant Pool 로 이루어져 있습니다. 이 영역은 어플리케이션이 실행되는 동안 잘 변하지 않는 정보를 저장하는데 사용합니다.스택 영역: 자바 어플리케이션 실행 시, 어플리케이션 내의 스레드마다 각 스레드의 스택이 존재하게 되는데, 해당 ..

자바의 가비지 컬렉션(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