Programming
-
Kotlin 처음 시작하기Programming/Kotlin 2021. 12. 26. 23:32
https://kotlinlang.org/ Kotlin Programming Language kotlinlang.org 코틀린을 처음 알게된 건 우아한형제들의 '어디가서 코프링 매우 알은 체 하기'라는 세미나 때문이었는데, 그때는 필요성도 실용성도 잘 체감하지 못했었다. 하지만 서버 개발자의 길에 입문하면서 코틀린에 관심이 생겼고, 왜 서버 개발 언어의 흐름이 자바에서 코틀린으로 넘어갔는지 알고싶었다. 그래서 다양한 IT서비스 회사들의 코틀린 관련 세미나를 찾아서 들었다 (사실 아래에 있는 링크 전부를 들은 건 아니다.. ㅎㅎ) - 카카오: https://tv.kakao.com/channel/3150758/cliplink/391419295 - 당근마켓(녹화본 업로드 예정): https://www.yout..
-
StackOverflowError가 뭘까? (사이트 아님)Programming/Java 2021. 11. 8. 22:22
https://stackoverflow.com/questions/3197708/what-causes-a-java-lang-stackoverflowerror/3197731 What causes a java.lang.StackOverflowError What can cause a java.lang.StackOverflowError? The stack printout that I get is not very deep at all (only 5 methods). stackoverflow.com When a function call is invoked by a Java Application, a stack frame is allocated on the call stack. The stack frame contai..
-
Thread-Safe: Multi-Thread 환경에서 동시성을 제어하기Programming/Java 2021. 10. 17. 00:19
https://2jinishappy.tistory.com/323 Java에서 Thread를 사용하는 방법 애플리케이션의 구현이 복잡해지면서 CS 기초 특히 트랜잭션, 쓰레드를 제대로 이해해야 겠다고 느꼈다. 그래서 쓰레드의 정의, 자바에서의 쓰레드 사용법, Thread-Safe 구현 방식, Thread-Safe Collection 2jinishappy.tistory.com Thread-Safe Java 환경에서는 개발자가 쉽게 다중의 Thread를 생성하고 사용할 수 있다. 여러 쓰레드의 바이트 코드를 동시에 실행시키는 멀티 쓰레딩은 애플리케이션 성능을 향상시킬 수 있지만, Resource를 공유하기 때문에 안전한 접근 방식이 필요하다. 즉, Multiple Thread를 사용할 때 에는 Thread-S..
-
POJO(Plain Old Java Object)와 JavaBeanProgramming/Java 2021. 10. 8. 19:00
POJO(Plain Old Java Object) 특정 프레임워크에 종속되지 않은 순수한 자바 객체 속성, 메서드에 대한 어떠한 네이밍 규칙도 없다. Java EE와 같은 무거운 프레임워크들이 서비스 시장을 점유했을 때, 해당 프레임워크에 종속된 (무거운) 객체를 사용해야 했던 것에 반발해서 나오게 된 개념이다. Spring Framework는 POJO를 기본 개념으로 채택했다. public class EmployeePojo { public String firstName; public String lastName; private LocalDate startDate; public EmployeePojo(String firstName, String lastName, LocalDate startDate) { ..
-
Java에서 Thread를 사용하는 방법Programming/Java 2021. 10. 4. 01:19
애플리케이션의 구현이 복잡해지면서 CS 기초 특히 트랜잭션, 쓰레드를 제대로 이해해야 겠다고 느꼈다. 그래서 쓰레드의 정의, 자바에서의 쓰레드 사용법, Thread-Safe 구현 방식, Thread-Safe Collections 같이 자바에서의 쓰레드 활용에 대해 리스트로 정리하고자 한다. Thread-safe에 대한 내용이 길어질 것 같아서 이 글에서는 Java에서의 Thread 선언까지만 다룰것이다. 프로세스와 쓰레드 프로세스는 실행 중인 프로그램의 단위를 말한다. 현재 OS의 특성 상 동영상을 보면서 동시에 문서 작업을 하는 것과 같은 다중 동시 작업을 지원해야 할 때 여러 프로세스가 메모리에 동시에 적재되고 번갈아가며 실행된다. 프로세스 또한 여러 작업 단위를 동시에 실행해야 할 수 있다. 프로세..
-
String Pool - Java의 String은 어디에 저장될까Programming/Java 2021. 8. 26. 01:24
Java String API(java.lang.String)는 Java에서 Primitive Data Type과 Reference Data Type의 중간 성격을 띄는, 특별한 클래스이다 https://2jinishappy.tistory.com/259?category=936901 [Java] String 🆚 StringBuffer 🆚 StringBuilder 무슨 차이일까? "String, StringBuilder, StringBuffer의 차이에 대해 설명하세요" 라는 면접 빈출 질문이 있다고 한다 그래서 오늘 java 공식 api 문서를 보면서 세 가지 클래스의 차이를 정리해 볼 것이다 1. String String 클.. 2jinishappy.tistory.com 이 글에서 언급한 것 처럼, Str..
-
Checked and Unchecked ExceptionProgramming/Java 2021. 8. 25. 21:10
Exception Java에는 Checked Exception과 Unchecked Exception이 존재한다. Checked Exception RuntimeException을 상속하지 않는 클래스. Exception 처리 코드 여부를 컴파일러가 Check 프로그램 실행 흐름 상 에러 발생 가능이 있을 때 try-catch / throws를 이용해 예외 처리 (Spring) Transaction의 기본 Rollback 대상이 아니기 때문에 트랜잭션 관리를 위한 추가적인 처리를 해주어야 한다 Unchecked Exception RuntimeException을 상속하는 클래스. 언제 발생할까? 프로그래머의 실수로 발생하는 예외 상황(0으로 나누기, NPE, OutOfIndex 등) 컴파일 시점에는 에러가 발..
-
[Java] Hotspot JVM Garbage Collection 과정Programming/Java 2021. 8. 23. 21:22
Garbage Collection(GC)은 메모리 관리 기법 중 하나로, 프로그램이 동적으로 할당한 메모리 영역 중 더 이상 사용하지 않는(않을 것이라 판단되는) 영역을 해제하는 기법이다. C언어의 malloc을 이용한 동적 할당은 free를 통해 사용자가 메모리 해제의 시점과 여부를 선택해야 했다. //SIZE 만큼 동적할당 int* arr = (*int)malloc(sizeof(int)*SIZE); //직접 메모리 영역 해제 free(arr); 이러한 방식은 해제해야 할 메모리 영역도 그대로 남아있는 메모리 누수를 발생시킬 수 있기 때문에 요즘의 언어에서는 메모리가 더 이상 참조되지 않는 시점에 알아서 메모리를 해제하는 GC를 두는 것이 일반적이다. 이 글에서는 JVM(Java Virtual Mach..