위 제목처럼 고민하게 된 계기는 다음과 같습니다. 서비스를 운영하면서 어떤 특정 클래스의 라인수가 길어지게 되고 해당 라인 수를 쪼개고 싶어지는 순간이 오게 됩니다. 예를 들어 설명해보겠습니다. 라면 레시피 관련 클래스가 있다고 생각해봅시다. 이 때 라면 종류는 다양합니다. - 빨간 국물 라면 - 짜장 라면 - 짬뽕 라면 - 비빔면 - 불닭 볶음면 등 다양한 레시피가 존재합니다. 그리고 빨간 국물 라면의 종류도 다양합니다. - 신라면 - 삼양라면 - 진라면 등 다양한 제품이 존재하게 됩니다. 이러한 정보를 하나의 클래스를 담는다고 생각해봅시다. 가령 다음과 같이 말이죠. @Getter @RequiredArgsConstructor public enum RamenRecipe { RED_SHIN(RamenTy..
글을 앞서 소개하기 앞서서 글을 적는 데 도움이 되었던 사이트 링크를 먼저 남깁니다. https://bugs.openjdk.org/browse/JDK-8277131 https://github.com/spring-projects/spring-framework/issues/23443 https://spring.io/blog/2022/10/11/embracing-virtual-threads Java Thread 의 변화 Loom Project 가 JDK 19 에 들어가면서 Virtual Thread, Concurrency 에 대한 내용이 추가가 되었다. 이전 버전에서의 Java 에서는 Virtual Thread 가 아닌 OS Thread를 생성하는 형식으로 구성되어 있었다. 기본적으로 Virtual Threa..
Generic은 왜 도입이 되었고 이점은 무엇인가? Oracle 참고 https://docs.oracle.com/javase/tutorial/java/generics/index.html Fortunately, some bugs are easier to detect than others. Compile-time bugs, for example, can be detected early on; you can use the compiler's error messages to figure out what the problem is and fix it, right then and there. Runtime bugs, however, can be much more problematic; they don't alway..
참고: https://docs.oracle.com/javase/tutorial/java/annotations/ Java Annotation Annotations, a form of metadata, provide data about a program that is not part of the program 메타데이터의 한 형태인 어노테이션은 프로그램의 일부가 아닌 프로그램에 대한 데이터를 제공합니다. 컴파일러를 위한 정보 - 어노테이션은 컴파일러가 에러나 supress warnings를 찾기 위해 사용된다. Compile-time 그리고 deployment-time 가공과정 - 소프트웨어 도구들은 어노테이션 정보들을 활용하여 코드, XML, JSON 등을 생성한다. 런타임 처리 - 몇몇 어노테이션은 런타..
우리는 항상 ArrayList가 thread safe하지 않다는 것을 들어봤을 것이다. 저도 항상 인지만 했지 왜 thread safe 하지 않다는 것이지? 우선 synchroinzed 제어자를 사용하면서 해당 메소드 또는 크래스 단위에서 락을 걸어서 멀티 스레드에 대해서 안전성을 보장하는 것은 대표적으로 Vector 가 있다. 하지만 ArrayList의 경우에는 이러한 제어자가 없다. 그러면 ArrayList에서 thread에 대한 체크를 하지 않는다는 것인가? 체크를 한다면 어떻게 체크를 하지? 그러면 에러가 날까? 이렇게 생각을 하다 ArrayList에 대해서 자세히 볼려고 한다. 우선 공통적으로 Collection 프레임 워크에서 modCount라는 것을 통해 값이 추가되거나 삭제 될 때 modC..
싱글톤 인스턴스에서 가장 조심해야 할 것은 자원을 공유하는 것이다. 우선 싱글톤에 대해서 모르시면 이 글을 참고해주시길 바랍니다. https://vixxcode.tistory.com/190 [Pattern][Java][Python] Singleton 생성 패턴에 대하여 1. GoF 디자인 패턴 의도 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공 활용성 1. 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점 vixxcode.tistory.com 싱글톤 인스턴스에서 자원을 공유하면 어떤 일이 일어날까? 그림대로 손님1과 손님2 두 클라이언트가 있다고 하자. 그리고 Shop이란 클래스는 싱글톤으로 관리되고 있으며 price라는 변수를 공유하여 쓰고 있는..
- Total
- Today
- Yesterday
- 백준
- 자바
- Collections
- 프로그래머스
- 알고리즘
- Celery
- BFS
- docker
- Pattern
- docker-compose
- headers
- Command Line
- 그래프
- setattr
- 2021 KAKAO BLIND RECRUITMENT
- Java
- Python
- DRF
- 파이썬
- thread
- django
- Linux
- ubuntu
- Spring
- 면접
- postgres
- env
- 카카오
- dockerignore
- PostgreSQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |