전체 글787 [C#]스레드 동기화(Thread Synchronization) 스레드 동기화(Thread Synchronization) 데이터 불일치는 두 개 이상의 스레드가 메모리 내부의 데이터를 동시에 접근할 때 발생합니다. 예를 들어 두 개의 스레드가 abcd.txt라는 텍스트 파일을 접근한다고 가정합니다. 스레드1은 abcd.txt 파일에 데이터를 작성(Write)하고 있으며, 스레드2는 abcd.txt 파일의 데이터를 읽는(Read) 중입니다. 작성되고 있는 데이터가 읽는 중에 반영되지 않으므로 데이터 불일치가 발생합니다. 스레드 동기화는 위 예시에서 언급한 abcd.txt 파일이라던지 메모리 내부의 데이터를 특정 스레드가 사용하고 있으면 다른 스레드는 접근할 수 없도록 하는 메커니즘입니다. 스레드1이 abcd.txt 파일에 데이터를 작성하고 있으면, 스레드2는 스레드1의.. C# 2022. 6. 5. 2022년 5월 티스토리 결산 2022년 5월 티스토리 결산을 통해 어떠한 변화가 있었는지 알아보겠습니다. 2022년 5월 방문수 2022년 5월 방문수는 76,920입니다. 4월에 방문수는 60,523이었으며 1.2배 상승했습니다. 5월 최대 일일 방문수는 3,843입니다. 5월 최대 일일 방문수 목표가 3,500이었으므로 목표는 달성했습니다. 하지만, 6월 초 연휴가 많아서 그런지 방문수가 계속해서 감소하고 있습니다. 방문수가 감소하는 원인이 연휴 때문인지 SEO 문제인지 지켜봐야겠습니다. 5월 발행한 포스팅은 총 40개입니다. 4월 발행한 포스팅 수와 동일합니다. 2022년 5월 수익 애드핏 수익은 1,570원입니다. 애드핏은 사이드바에만 게시하고 신경 쓰지 않으려고 합니다. 애드센스 수익은 $101.53입니다. 드디어 $100.. 티스토리/블로그 결산 2022. 6. 5. [Java]ArrayList 특정 값 삭제 이번 포스팅은 ArrayList에서 특정 값 삭제하는 방법을 소개합니다. ArrayList.remove() - 인덱스 remove() 메서드에 지정된 위치(인덱스)를 전달합니다. 해당 위치에 있는 요소를 제거하고 뒤에 있는 요소는 왼쪽으로 이동합니다. remove() 메서드는 삭제된 요소를 반환합니다. 다음 예제는 remove() 메서드에 인덱스를 전달하는 방법과 반환된 값을 보여줍니다. ArrayList stringArrayList = new ArrayList(); stringArrayList.add("One"); stringArrayList.add("Two"); stringArrayList.add("Three"); stringArrayList.add("Four"); System.out.println(.. Java/컬렉션 2022. 5. 30. [Java]두 개의 ArrayList 합치기(merge) 이번 포스팅은 두 개의 ArrayList를 하나의 ArrayList로 합치는 방법을 소개합니다. List.addAll() addAll() 메서드는 인자로 전달된 컬렉션 객체의 모든 요소를 ArrayList 끝에 추가합니다. 다음 예제는 liOne 끝에 liTwo의 모든 요소를 추가합니다. ArrayList liOne = new ArrayList(); liOne.add("A"); liOne.add("B"); liOne.add("C"); ArrayList liTwo = new ArrayList(); liTwo.add("D"); liTwo.add("E"); liTwo.add("F"); System.out.println("addAll() 메서드 호출 전"); System.out.println(liOne); li.. Java/컬렉션 2022. 5. 30. [C#]지역 함수(Local Function) 지역 함수(Local Function) C#의 지역 함수는 함수의 본문 내부에 존재하는 함수입니다. 함수를 사용할 수 있는 범위가 상위 함수 본문으로 제한되므로 지역 함수라고 하며, C# 7.0에 도입된 기능입니다. 특정 함수 본문 내부에 정의된 함수를 지역 함수, 하위 함수라고 말하며, 특정 함수는 상위 함수라고 말합니다. 지역 함수 특징 지역 함수는 종료자(finalizers), 람다 표현식(lambda expressions), 생성자(constructors) 등에서 호출할 수 있습니다. 지역 함수는 기본적으로 private이므로 접근 한정자 및 static 키워드를 사용할 수 없습니다. main() 함수 또는 상위 함수에서 지역 함수 정의 후 여러 번 호출할 수 있습니다. 지역 함수는 오버로드(Ov.. C# 2022. 5. 29. 직장인 10km 달리기 일반인 10km 달리기 평균 시간이 궁금해서 인터넷 검색해봤는데, 다양한 글을 볼 수 있었다. "1시간 안에 10km 끊어야 한다.", "운동 안 해도 1시간 이내 가능하다.", "평소에 관리해서 가능한 거다.", "마라톤 대회 기준이다." 등 다양한 의견이 존재한다. 일반인이라는 기준이 운동을 하는 일반인, 운동을 안 하는 일반인, 선수가 아닌 모든 사람 등 사람마다 생각하는 기준이 다르기 때문에 정답은 없다고 생각한다. 제일 중요한 것은 넷상에서 인증 못하면 뭐다? 주작 아니면 거짓말이다. 마라톤 대회도 준비할 겸 10km 달리기 시간을 측정해보았다. 나의 러닝 코스는 광안해변로 자전거길이다. 토요일 오후 8~10시 사이에는 나처럼 러닝 하는 사람이 많아서 일부러 오후 10시 40분쯤 도착했다. 결과.. 일상 2022. 5. 29. [C#]멀티스레드(MultiThread) 멀티태스킹(Multitasking) C#에서 멀티스레드를 구현하는 방법을 설명하기 전에 멀티태스킹과 멀티스레딩 개념을 간단하게 알아봅시다. Windows와 Mac OS는 널리 사용되고 있는 멀티태스킹 운영체제입니다. 멀티태스킹 운영체제는 여러 애플리케이션을 동시에 실행할 수 있다는 의미입니다. 예를 들어 우리는 게임을 플레이하면서 유튜브 동영상을 볼 수 있고 코딩을 하면서 노래를 들을 수 있습니다. 이렇게 여러 작업이 가능한 이유는 사용하고 있는 컴퓨터의 운영체제가 멀티태스킹 운영체제이기 때문입니다. 멀티스레딩(Multithreading) 실행되고 있는 프로그램을 프로세스라고 말하며 프로세스를 여러 단위로 나눈 것을 스레드라고 말합니다. 멀티스레딩은 여러 스레드가 동시에 작업하는 것을 말하며, 동시 프로.. C# 2022. 5. 28. [C#]Thread 생성자(Thread Constructor) 스레드(Thread)란? 스레드는 프로세스의 단위입니다. 실행되고 있는 프로그램을 프로세스라고 하며, 한 개의 프로세스로 프로그램을 실행하기 어렵기 때문에 프로세스를 여러 단위(=스레드)로 나누어 프로그램을 효율적으로 실행하도록 합니다. 프로세스에는 기본적으로 스레드가 하나 이상 있으며, 이 스레드를 기본 스레드, 단일 스레드, 싱글 스레드라고 말합니다. 프로세스에 여러 개의 스레드가 존재하면 멀티 스레드라고 말합니다. Thread 클래스의 역할 스레드 생명 주기가 시작되면, Thread 클래스의 객체가 생성됩니다. 스레드 생명 주기가 끝나거나 작업을 완료되었으면 Thread의 실행이 중단되거나 종료됩니다. 다음은 스레드 생명 주기의 상태입니다. 생성(Create) 상태 Thread 객체를 생성했지만, .. C# 2022. 5. 28. [Java]ArrayList 모두 삭제 clear(), removeAll() 이번 포스팅은 ArrayList 객체의 모든 요소를 제거하는 방법을 소개합니다. ArrayList.clear() 다음 예제는 clear() 메서드를 호출하여 ArrayList 객체의 모든 요소를 제거합니다. ArrayList li = new ArrayList(); li.add("A"); li.add("B"); li.add("C"); // clear() 호출 전 System.out.println(li); // clear() 호출 li.clear(); // clear() 호출 후 System.out.println(li); 실행 결과 [A, B, C] [] ArrayList.removeAll() 다음 예제는 removeAll() 메서드를 호출하여 ArrayList 객체의 모든 요소를 제거합니다. ArrayLi.. Java/컬렉션 2022. 5. 27. [C#]캡슐화(Encapsulation) 캡슐화(Encapsulation) 필드와 메서드를 하나로 묶는 과정을 캡슐화라고 합니다. 필드를 private로 선언하여 클래스 외부에서 접근할 수 없도록 하고 public으로 선언된 메서드(getter 및 setter 메서드)를 사용하여 클래스 내부의 필드를 접근하는 것을 캡슐화라고 할 수 있습니다. 필드를 private으로 선언하는 이유는 클래스 외부에서 직접 접근할 수 없도록 하기 위해서입니다. getter() 및 setter() 메서드를 public으로 선언하는 이유는 유효성 검사를 통해 클래스 외부에서 private으로 선언된 필드를 접근하기 위해서입니다. 캡슐화 예제 다음은 캡슐화 개념을 이해하기 위해 예제를 통해 설명합니다. Person 클래스에는 age라는 필드를 private로 선언하여 .. C# 2022. 5. 25. [C#]확장 메서드(Extension Method) 확장 메서드(Extension Method) 확장 메서드는 C# 3.0에 추가된 새로운 기능으로 클래스 또는 인터페이스를 상속하거나 재구성하지 않고 클래스에 메서드를 추가할 수 있습니다. 확장 메서드는 클래스의 소스 코드를 수정할 수 없거나 변경할 권한이 없는 경우 클래스의 기능을 확장하는 방법으로 사용할 수 있습니다. 다음은 확장 메서드를 이해하기 위한 예제입니다. OriginClass라는 클래스에는 Print1(), Print2(), Print3() 메서드가 존재합니다. public class OriginClass { public void Print1() { Console.WriteLine("Print1() Method Call"); } public void Print2() { Console.Writ.. C# 2022. 5. 24. 10kg 감량 후 변화 9개월 전 직장인 남자 5개월 만에 10kg 감량이라는 포스팅을 작성했다. 현재 몸무게는 58.2kg이며, 몸무게를 유지하고 있다. 이번 포스팅은 10kg 이상 감량 후 변화된 삶에 대해 작성해본다. 주위 시선 나는 개인적으로 헬스를 좋아하지 않는다. 근육질 몸매보다 민첩하고 날렵한 몸매 그리고 실전 압축 근육 몸매를 선호하기 때문이다. 그러다 보니 격투기 운동을 좋아하게 되었고 현재 주 4일 복싱 체육관을 다니고 있다. 그런데, 대부분의 사람들은 근육질 몸매를 선호하다보니 제발 살 좀 찌란다. "근육질 몸매 안좋아해서 복싱하는데요."라고 말하면, 대부분 "네가?" 이런 반응이다. 주위 시선때문에 은근히 스트레스받는다. 옷 옷 사는게 정말 힘들다. 내 신체는 171cm에 57~58kg다. 상의는 S~M .. 일상 2022. 5. 23. 이전 1 ··· 30 31 32 33 34 35 36 ··· 66 다음