분류 전체보기 34

동시성 문제 해결 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

[컨텍스트 스위칭] 스레드 2번째 이야기

웹 서버의 성능을 최적화 하는 방법으로 멀티 스레드를 활용하면 가능하다고 포스팅을 올렸는데사실 멀티태스킹이 반드시 효울적이지만은 않습니다. 오늘은 멀티스레드 개념에서 어떤 상황에서 멀티 스레드를 활용하면 오히려 성능이 떨어지는 케이스를 살펴보고 멀티스레드를 올바르게 활용할 수 있는 판단력을 키워보고자 합니다. 개요프로세스, 스레드 개념이 익숙하지 않는 독자들은 컨텍스트 스위칭 (문맥 교환) 개념이 익숙하지가 않을 것 같아사람의 멀티 태스킹을 비유로 어떤 케이스에 오히려 비효율적인 성능이 나오는지 확인해보겠습니다. 1. 사람의 멀티태스킹  만약 어떤 개발자가 프로그램 A를 개발하고 있다고 가정해보겠습니다.이때 기획자가 갑자기 프로그램 B에 급한 이슈 상황이 발생해 바로 수정해달라고 합니다.프로그램 A의 개..

OS 2024.08.31

Java 프로세스와 스레드

* 해당 포스팅은 김영한님의 자바 고급 편에 있는 멀티스레드 영상을 보고 정리한 내용입니다. 개요처음 자바를 학습할때 이 코드 제일 먼저 보지 않나요?public static void main(String[] args) { //처음 자바 실행하는 코드 System.out.println("hello world!")}저도 처음 시작할때 위 코드를 출력하는거 부터 시작했던 기억이 나는거 같습니다. 몇분들은 아마 의문점을 가질 수 있는데요 프로세스와 스레드라는 주제로 왜 이 코드를 보여주냐?그 이유는 바로 위 main 함수부터 메인 스레드가 시작지점이 바로 여기 이기 때문입니다. 처음 자바를 학습 할때는 멀티 스레드 라는 개념을 인지하지 않고 메인 함수에서 많은 함수와 프로그램을 실행 시켰는데요사실 ..

Java 2024.08.30

HTTP 그게 뭔데! ver1

intro바야흐로 웹 개발자라면 http 통신에서 살고 있는 21세기 개발자에게 필수지식이 되어버렸다. http에 대해 잘 모르는 frontEnd 개발자라도 자바스크립트에 기본으로 내장되어있는 fetch 함수는 사용 혹은 구경은 해본경험은있을것이라 생각한다. (웹 개발자니까.. 서버랑은 통신 해본경험은 있을거 아녀..) 통신할때 꼭 필요하다는 http! 우리가 알게 모르게 사용하고 있는 이 http에 대해서 얇고 넓은 지식을 한번 이 포스팅에 담아보도록 하겠다. 내용전공자라면 정말 지겹게 듣는다던 osi 7계층 (나는 비전공자 ^ㅅ^;;) 이 모든것에 다룰 자신도 없고 그럴 필요도 (필요할 수도?) 없다고 생각한다.해당 포스팅은 7 ~ 4 계층 까지 정말 웹에 필수? 적인 내용만 담을거 이기 때문이다 우..

WEB 2024.08.05

함수형 코딩

개요앞으로 읽은 책은 it 서적 독후감을 통해서 내가 읽은 내용을 요약하고 나만의 생각을 정리하고자 해당 포스팅을 하게 되었습니다.  왜 이책을 읽게 되었는가..인프런이라는 온라인 강의 사이트가 있는데 해당 플랫폼에서는 "멘토링" 이라는 서비스가 존재한다해당 서비스는 내가 관심있는 분야에 오랫동안 일한 분들과 1시간 남짓 이야기를 할 수 있는 서비스인데그분이 추천해준 여러 책중에 하나 였다.객체지향 이라는 패러다임과 더불어 클린코드가 개발자의 칼퇴와 높은 연봉을 안겨준다고 생각한다면 익혀두는게 좋다고 생각해서 읽게 되었다. 내용어느 서적이나 마찬가지로 책 혹은 글을 잘쓰는 사람들의 특징은 가장 중요한 내용을 앞에 서술하고그 다음 중요한 내용 순으로 서술 하고는 한다내가 읽고 있는 함수형 코딩 이라는 책의..

it 서적 독후감 2024.07.30