분류 전체보기
-
이번 포스트에서는 스레드의 장점 중 하나인 데이터의 공유와 이와 연관된 동기화 문제를 살펴보자. 데이터 공유와 동기화 데이터 공유멀티 스레드 프로그램의 장점 중 하나는 힙의 데이터를 공유한다는 점이다. 다음의 그림은 Account 라는 객체를 출금 스레드 2개와 입금 스레드 2개가 공유하고 있는 모습을 보여준다. 4개의 Account를 만들 필요 없이 하나의 객체가 사용되므로 효율적일 수 있다. 출금을 위한 뱅킹 시스템Account 객체는 잔금인 balance와 출금, 입금을 위한 withdraw, deposite 메서드를 갖는다. 문제는 출금 과정이 복잡해서 주토피아에 나오는 나무늘보처럼 살짝 느리게 동작한다고 생각해보자.package ch14.banking;public class Account {..
[Thread] 03.데이터의 공유와 동기화이번 포스트에서는 스레드의 장점 중 하나인 데이터의 공유와 이와 연관된 동기화 문제를 살펴보자. 데이터 공유와 동기화 데이터 공유멀티 스레드 프로그램의 장점 중 하나는 힙의 데이터를 공유한다는 점이다. 다음의 그림은 Account 라는 객체를 출금 스레드 2개와 입금 스레드 2개가 공유하고 있는 모습을 보여준다. 4개의 Account를 만들 필요 없이 하나의 객체가 사용되므로 효율적일 수 있다. 출금을 위한 뱅킹 시스템Account 객체는 잔금인 balance와 출금, 입금을 위한 withdraw, deposite 메서드를 갖는다. 문제는 출금 과정이 복잡해서 주토피아에 나오는 나무늘보처럼 살짝 느리게 동작한다고 생각해보자.package ch14.banking;public class Account {..
2024.07.05 -
망아지 같은 스레드를 잘 사용하기 위해서는 그들의 상태를 잘 이해하고 제어해야 한다. 스레드의 우선 순위와 상태 스레드의 우선순위멀티스레드 환경에서 프로그램의 효율성과 안정성을 보장하기 위해서는 스레드의 우선순위와 상태 제어가 필수적이다.스레드의 우선순위는 스레드가 CPU 시간을 얼마나 많이 할당받을 수 있을지를 결정하는 역할을 수행한다. 우선순위가 높은 스레드는 우선 순위가 낮은 스레드보다 더 자주 실행될 "가능성"이 크다. 다음과 같은 상황을 고민해보자.메신저를 쓰면서 파일 전송이 좀 느릴 수는 있지만 채팅이 전달 안되는것은 참기 어렵다.사용자 UI를 담당하는 스레드는 빠른 응답성을 위해 높은 우선순위를 부여한다.G.C를 담당하는 스레드는 평소에는 낮은 우선순위를 가지다가 메모리 부족 등 급박한 ..
[Thread] 02. Thread의 상태와 제어망아지 같은 스레드를 잘 사용하기 위해서는 그들의 상태를 잘 이해하고 제어해야 한다. 스레드의 우선 순위와 상태 스레드의 우선순위멀티스레드 환경에서 프로그램의 효율성과 안정성을 보장하기 위해서는 스레드의 우선순위와 상태 제어가 필수적이다.스레드의 우선순위는 스레드가 CPU 시간을 얼마나 많이 할당받을 수 있을지를 결정하는 역할을 수행한다. 우선순위가 높은 스레드는 우선 순위가 낮은 스레드보다 더 자주 실행될 "가능성"이 크다. 다음과 같은 상황을 고민해보자.메신저를 쓰면서 파일 전송이 좀 느릴 수는 있지만 채팅이 전달 안되는것은 참기 어렵다.사용자 UI를 담당하는 스레드는 빠른 응답성을 위해 높은 우선순위를 부여한다.G.C를 담당하는 스레드는 평소에는 낮은 우선순위를 가지다가 메모리 부족 등 급박한 ..
2024.07.04 -
이번 포스트에서는 multi thread의 개념에 대해 살펴보자. Process와 Thread ProcessThread를 알기 위해서는 먼저 Process에 대해서 알아야 한다.Process란 실행중인 프로그램 자체를 생각하면 된다. Eclipse같은 IDE, 지금 사용중인 Browser, 문서 편집을 위한 Word 등이 모두 Process다. Process는 프로그램 실행에 필요한 모든 데이터, 메모리 등 자원과 thread로 구성된다.그럼 Multi Process란 뭘까? 이는 동시에 여러 개의 프로세스를 실행시키는 것이다. 음악을 들으면서 Eclipse로 작업 하는 것이 대표적인 Multi Process 환경이다. 우리가 사용하는 OS들은 대부분 Multi Process를 지원한다.이때 실행되는..
[Thread] 01. Multi Thread 개념이번 포스트에서는 multi thread의 개념에 대해 살펴보자. Process와 Thread ProcessThread를 알기 위해서는 먼저 Process에 대해서 알아야 한다.Process란 실행중인 프로그램 자체를 생각하면 된다. Eclipse같은 IDE, 지금 사용중인 Browser, 문서 편집을 위한 Word 등이 모두 Process다. Process는 프로그램 실행에 필요한 모든 데이터, 메모리 등 자원과 thread로 구성된다.그럼 Multi Process란 뭘까? 이는 동시에 여러 개의 프로세스를 실행시키는 것이다. 음악을 들으면서 Eclipse로 작업 하는 것이 대표적인 Multi Process 환경이다. 우리가 사용하는 OS들은 대부분 Multi Process를 지원한다.이때 실행되는..
2024.07.03 -
이번 포스트에서는 CSS 우선순위에 대해 살펴보자. CSS 우선순위 Cascading Style SheetCSS는 Cacading Style Sheet의 약자이다. Cascade의 사전적 의미는 '작은 폭포' 같은 것이고 CSS에서의 의미는 상위에서 하위로 단계적으로 적용된다는 의미일 것이다.웹 문서의 태그들은 서로 포함 관계에 있다. 이때 자식 요소에서는 별도로 스타일을 지정하지 않으면 부모 요소의 스타일 속성을 그대로 물려 받는다. 예를 들어 에 글자색이나 글꼴을 지정하면 그 스타일은 하위 태그에 영향을 준다. 문제는 요소들이 계층적으로 사용되다 보니 하위에 있는 요소들에서는 상위에서 흘러들어오는 스타일이 중복될 수밖에 없다. 이처럼 웹 요소에 둘 이상의 스타일이 적용될 때 우선 순위에 따라 적..
[css] css의 우선순위이번 포스트에서는 CSS 우선순위에 대해 살펴보자. CSS 우선순위 Cascading Style SheetCSS는 Cacading Style Sheet의 약자이다. Cascade의 사전적 의미는 '작은 폭포' 같은 것이고 CSS에서의 의미는 상위에서 하위로 단계적으로 적용된다는 의미일 것이다.웹 문서의 태그들은 서로 포함 관계에 있다. 이때 자식 요소에서는 별도로 스타일을 지정하지 않으면 부모 요소의 스타일 속성을 그대로 물려 받는다. 예를 들어 에 글자색이나 글꼴을 지정하면 그 스타일은 하위 태그에 영향을 준다. 문제는 요소들이 계층적으로 사용되다 보니 하위에 있는 요소들에서는 상위에서 흘러들어오는 스타일이 중복될 수밖에 없다. 이처럼 웹 요소에 둘 이상의 스타일이 적용될 때 우선 순위에 따라 적..
2024.06.04 -
그동안 modal 창이 필요할 때 부트스트랩을 자주 사용했었는데 이제(2022년? ㅎ) html의 기본 태그에도 modal 역할을 수행하는 녀석이 생겼다. 이름 하여 hello dialog?dialog는 단순히 써볼 수 있는데 dialog를 보여주기 위해서는 open 속성을 사용하면 된다. 안녕 난 다이어로그야!dialog의 기본 display는 none인데 open 상태일 경우는 block으로 변경된다. (미리 css 처리가 되어있고 이때 내부적으로는 HTMLDialogElement.show() 함수가 동작한다.)position 속성은 absolute를 가지므로 top, left 등의 속성으로 위치를 제어하기 용이하다. 기본적으로는 가운데 상단에 배치된다. 이벤트를 이용한 dialog 제어간단..
[html] html의 순정 모달 <dialog>그동안 modal 창이 필요할 때 부트스트랩을 자주 사용했었는데 이제(2022년? ㅎ) html의 기본 태그에도 modal 역할을 수행하는 녀석이 생겼다. 이름 하여 hello dialog?dialog는 단순히 써볼 수 있는데 dialog를 보여주기 위해서는 open 속성을 사용하면 된다. 안녕 난 다이어로그야!dialog의 기본 display는 none인데 open 상태일 경우는 block으로 변경된다. (미리 css 처리가 되어있고 이때 내부적으로는 HTMLDialogElement.show() 함수가 동작한다.)position 속성은 absolute를 가지므로 top, left 등의 속성으로 위치를 제어하기 용이하다. 기본적으로는 가운데 상단에 배치된다. 이벤트를 이용한 dialog 제어간단..
2024.06.04 -
1더하기 1은 귀요미 11기가 종강했습니다.한학기동안 고생 많았고 요새 취업이 어려워지고 있지만 압도적 실력으로 얼른 싸탈해서 사회에서 반짝 반짝 빛나는 보석같은 개발자가 되길 기원합니다.! 화이팅!!
SSAFY 11기 1학기 종강1더하기 1은 귀요미 11기가 종강했습니다.한학기동안 고생 많았고 요새 취업이 어려워지고 있지만 압도적 실력으로 얼른 싸탈해서 사회에서 반짝 반짝 빛나는 보석같은 개발자가 되길 기원합니다.! 화이팅!!
2024.05.27 -
이번 포스트에서는 vite-plugin-vue-devtools의 사용법에 대해 살펴보자.https://devtools-next.vuejs.org/guide/getting-started Vue DevToolsUnleash Vue Developer Experiencedevtools-next.vuejs.org 설치 및 환경설정 프로젝트 생성 시 설치하기vite를 이용해서 vue를 개발하는 과정에서 전체적인 프로젝트의 구조를 파악하고 디버깅을 위해 devtools가 추가되었다. 이는 기존에 browser의 plugin 기반으로 제공하던 기능보다 훨씬 강력한 기능을 제공한다. (vite-plugin-vue-devtools를 설치하면 browser의 plugin은 비활성화 된다.)가장 쉬운 설치 방법은 처음에 프..
[vite]vite-plugin-vue-devtools이번 포스트에서는 vite-plugin-vue-devtools의 사용법에 대해 살펴보자.https://devtools-next.vuejs.org/guide/getting-started Vue DevToolsUnleash Vue Developer Experiencedevtools-next.vuejs.org 설치 및 환경설정 프로젝트 생성 시 설치하기vite를 이용해서 vue를 개발하는 과정에서 전체적인 프로젝트의 구조를 파악하고 디버깅을 위해 devtools가 추가되었다. 이는 기존에 browser의 plugin 기반으로 제공하던 기능보다 훨씬 강력한 기능을 제공한다. (vite-plugin-vue-devtools를 설치하면 browser의 plugin은 비활성화 된다.)가장 쉬운 설치 방법은 처음에 프..
2024.05.06 -
여기에서는 vscode를 사용하면서 설정한 사용한 내용들을 정리해보자. Java Compiletion: Match Casevscode에서 코드 자동완성 기능은 기본적으로 대소문자를 가린다.이때 Java > Completion: Match Case를 사용한다. 이 속성의 기본 값은 FirstLetter 즉 첫 글자를 기준으로 하는데 대소문자를 가린다. 이 부분을 off 로 변경해주자.
[vscode] 사소한 설정들여기에서는 vscode를 사용하면서 설정한 사용한 내용들을 정리해보자. Java Compiletion: Match Casevscode에서 코드 자동완성 기능은 기본적으로 대소문자를 가린다.이때 Java > Completion: Match Case를 사용한다. 이 속성의 기본 값은 FirstLetter 즉 첫 글자를 기준으로 하는데 대소문자를 가린다. 이 부분을 off 로 변경해주자.
2024.04.30