분류 전체보기 28

티파니 밀그레인 가드링 구매후기

반지 하나만 끼기에는 뭔가 허전한 느낌이 들 때, 가드링이 정말 좋은 선택이더라고요! 이번에 티파니 밀그레인 반지를 구매했는데, 반지가 살짝 커서 가드링을 알아보게 되었습니다. 디자인은 예뻤지만 사이즈가 애매해서 손가락에서 돌아가는 느낌이 좀 있었거든요. 가드링을 어디서 구매할지 고민하던 중에 도헤라는 곳이 유명하다는 후기를 많이 보게 되었어요. 가격도 괜찮고 디자인도 다양하다고 해서 직접 찾아가 보았습니다. 도헤를 방문한 후의 솔직한 후기! 1. 친절한 상담처음 방문했을 때부터 직원분들이 너무 친절하게 맞아주셔서 기분이 좋았어요. 반지에 대한 고민도 잘 들어주시고, 다양한 가드링을 보여주며 추천까지 해주셨습니다. 2. 다양한 반지 디자인반지 종류가 정말 다양해서 마음에 드는 걸 찾는 데 오래 걸리지 않..

내 이야기 2024.12.17

[Java] 스레드 풀과 Excutor 프레임워크

* 해당 포스팅은 김영한님의 자바 고급편 강의를 학습 후 정리한 포스팅 입니다. Intro안녕하세요 이번에 스레드 포스팅 시리즈를 쭉 이어오고 있는데 원래는 맨 처음 프로세스와 스레드의 차이 부터 시작하면서 쭉 진행할려고 했는데그렇게 하기엔 스레드 관련 포스팅을 하기엔 내용이 너무 방대하고 Lock 인터페이스를 활용해서 객체를 구현할 일도 거의 없구요이미 자바에서 잘 만들어진 Executor 객체를 사용할 텐데  우선은 실무에서 바로 사용할 수 있는 개념과 코드 예제를 설명하고 그 다음 포스팅을 차근 차근 풀어나가도록 할려고 노선을 변경했습니다. 그래서 갑자기 포스팅이 쭉 이어오다가 뜬금없이 Excutor 개념이 나왔는데앞으로 계속 작성은 할테니깐요 쭉 지켜봐주시면 정말 감사하겠습니다!!스레드를 직접 사..

Java 2024.09.29

[Java]ReentrantLock

* 해당 포스팅은 김영한님의 고급 자바편 영상을 시청 완료후 정리한 내용입니다. 안녕하세요 오늘로 추석 마지막 날인데 다들 즐거운 시간 보내셨는지요~ ㅎㅎ이번 추석은 정말 이상하게 더운 날씨였습니다.. 추석에 폭염이라니 정말 믿겨지지 않네요.. 오늘 포스팅은 지난 포스팅에 쭉 이어가서ReentrantLock 객체에 대해서 사용법, 내부적으로 어떻게 동작하는지 살펴보는 시간이 되겠습니다. ReentrantLock 이론자바는 1.0에 synchronize 키워드를 통해 쉽게 임계영역을 설정하고 병목화를 최소화 할 수 는 있지만 각 스레드를 세밀하게 제어할 수 없는 단점이 있다고 했습니다 synchronize 단점무한대기 : Blocked 상태의 스레드는 락이 풀릴 때 까지 무한 대기한다.공정성: 락이 돌아왔..

Java 2024.09.18

자바의 고오급 동기화 concurrent.Lock

안녕하세요 요즘에는 동기화를 학습중이라 동기화 관련 포스트만 하게 되네요 ㅎㅎ아무래도 요즘 신입 개발자들에게 친숙하지 않는 개념이라고 생각이라고 드는데 사실 동기화 문제는 이해하기가 굉장히 어렵습니다. 공부하기도 쉽지가 않고 학습을 한다 하더라도 어떻게 순서대로 학습해야하는지 시간을 많이 사용해야 하는데그런분들을 위해서 조금이나마 도움이 됬으면 하는 마음으로 이번 포스팅 올리도록 하겠습니다.지난 포스팅 synchronized 의 복습 지난 포스팅에 내용에 우리는 자바가 무려 1.0부터 지원해준 synchronized 키워드 덕분에 동시성 이슈를 간단하게 설명할 수 있다고그때 설명드렸습니다.  사용방법은 간단하게 각 함수 앞에 synchronized 키워드만 붙여주면 동기화 문제를 해결할 수 있다고 말씀드..

Java 2024.09.14

동시성 문제 해결 synchronized 메서드

* 해당 포스팅은 김영한님의 고급 자바편 강의를 수강 후 해당 내용을 정리한 포스팅입니다. 안녕하세요 이제 가을이 다가오는데 아직까지도 날씨가 덥고 올해 추석은 최고 35도까지 올라간다고 하네요..항상 건강하시고 즐거운 연휴 보내시길 바랍니다 ㅎㅎ 지난 포스팅에서는 동시성 이슈에 대해 알아보았습니다.동시성 이슈가 뭔지, 예제를 통해서 동시성 이슈는 정말 엄청난 버그를 확인했죠 오늘은 이어서 그렇다면 자바진영에서는 이 동시성 문제를 어떻게 해결했는지 알아보시죠!임계 영역이런 문제가 발생한 근본 원인은 여러 스레드가 함께 상요하는 공유 자원을 여러 단계로 나누어 사용하기 때문입니다.우리가 지난 시간에 간단한 출금예제를 통해 동시성 이슈를 살펴보았는데 해당 예제를 다시 가져오보도록 하겠습니다. 출금() { ..

OS 2024.09.11

동기화 - synchronized (동시성 이슈)

* 해당 포스팅은 김영한님의 자바 고급편 강의를 완강 후 저만의 방식으로 정리한 내용입니다.  안녕하세요 지난 포스팅에는 메모리 가시성에 대해 이야기하고 어떤 문제를 가지고 있는지그리고 메모리 가시성 문제를 자바에서는 어떻게 해결하는지 알아보았습니다. 오늘은 메모리 가시성 문제보다 더 큰 문제인.. 동기화라는 주제에 대해 이야기 해보고자합니다. 동기화 synchronizedOS 카테고리 Java 프로세스와 스레드 포스팅 편에서 멀티스레드를 활용하면 성능 최적화를 이뤄낼 수 있다고 했습니다.https://junghan49.tistory.com/19 Java 프로세스와 스레드* 해당 포스팅은 김영한님의 자바 고급 편에 있는 멀티스레드 영상을 보고 정리한 내용입니다. 개요처음 자바를 학습할때 이 코드 제일 먼..

OS 2024.09.10

자바 volatile, 메모리 가시성 문제 해결

* 이 포스팅은 김영한님의 자바 고급편을 보고 정리한 내용입니다. 안녕하세요 지난 포스팅까지는 메모리 가시성에 대해서 포스팅을 했습니다.메모리가 가시성의 정의 부터 시작해서 실제 멀티스레드 환경에서 스레드들이 공유하는 메모리에 어떻게 접근하지는 직접확인했고캐싱 메모리, 메인 메모리의 개념도 학습했습니다, 그리고 자바의 메모리 가시성 문제까지 확인했습니다. 오늘은 지난 포스팅에 이어 자바에서는 이런 메모리 가시성문제를 어떻게 해결했는지그리고 어떻게 해결할지에 대해 정리하는 시간을 가져보고자 합니다. 자바의 volatile지난 포스팅을 통해 자바에서 발생하는 메모리 가시성 근본문제를 파악했습니다각 스레드마다 같은 메모리를 참조하는것이 아닌 성능향상을 위해 캐싱메모리를 참조했고 이로 인해서 메모리 가시성 문제..

OS 2024.09.09

OS 메모리 가시성의 이야기

* 해당 포스팅은 김영한님의 고급 자바편 멀티스레드 강의를 보고 정리한 내용입니다. 지난 시간 우리는 멀티스레드에 대해서 알아보고 멀티스레드 기능을 활용해서 성능최적화를 할 수 있다고 말했습니다. 다만 멀티스레드 개념없이 코드를 가져다가 쓰게 된다면 디버깅 하기도 어려운 엄청난 버그를 만날 수 있다고도언급했습니다. 오늘은 바로 그 이야기를 하고자합니다. 메모리 가시성 (Memory Visibility)우선 메모리 가시성이라는 단어부터 굉장히 낯선용어네요 사전에 따르면 "눈에 쉽게 보이는 정도"를 뜻하는데 컴퓨터 과학에서는 다음과 같이 말합니다.* 각각의 스레드가 공유자원에 대해서 모두 같은 상태를 바라보고 있는 것 흠.. 아직 용어가 어렵군요 여기서 말하는 공유자원이 뭘까요?멀티스레드 개념으로 바라본다면..

카테고리 없음 2024.09.05

OS 스레드의 예외 처리

* 해당 포스팅은 김영한님의 자바 고급편 스레드 강의 영상을 보고 정리한 포스팅입니다. 안녕하세요 지난 포스팅에 이어서 오늘은 스레드의 예외 처리에 대해서 이야기 해보고자 합니다. 우선 스레드에서 예외 처리를 진행하기 전에 자바의 예외에 대해서 약간의 학습을 진행한다면스레드의 예외처리를 어떻게 하면 깔끔하게 처리할 수 있을지 고민할 수 있을거 같아 자바의 예외 객체부터 살펴보는 시간을 가져보도록 하겠습니다.자바의 예외 계층도에러와 예외를 간단하게 정의부터 시작해보겠습니다.더보기1.  프로그램의 오류- 컴파일 오류: 개발자가 IDE 에서 개발을 할 때 잘못된 문법을 사용할때 컴파일에서 미리 개발자에게 에러를 알리는 것입니다.- 런타임 에러: 실행 할 때 발생하는 에러 입니다.- 논리적 에러: 작성 의도와 ..

OS 2024.09.03

Java 스레드 Deep Dive

* 해당 포스팅은 김영한님의 자바 고급편 스레드 강의를 완강 후 해당 내용을 정리한 글입니다. 지난 포스팅은 컨텍스트 (문맥전환)에 학습하고 해당 내용을 정리하는 시간을 가졌는데요오늘은 지난 포스팅을 이어 자바에서 제공하는 스레드 기본정보와 생명주기에 대해서 정리하겠습니다. 스레드 기본 정보자바에는 Thread 클래스가 존재합니다, 해당 클래스를 통해 스레드를 생성하고 관리하는 기능을 제공하는데요Thread가 제공하는 정보들을 한번 간단하게 정리하겠습니다.package thread.control;import thread.start.HelloRunnable;import static util.MyLogger.log;public class ThreadInfoMain {public static void main..

OS 2024.09.02