2026/04 3

[소프트웨어 마에스트로] 17기 최종 선발 후기

결론적으로 먼저 말하면 소마 17기 부산에 붙었다. 솔직히 면접도 잘 못보고 2차 코테도 잘 보지는 못해서 떨어질줄 알았다. 그래서 보고도 처음엔 믿기지 않았다!!!10시에 결과가 나온다고 알고있는데 하필 7시 반부터 눈이 떠져서 일부러 자려고 했는데 잠이 오지 않아서 2시간 넘게 눈만 감고 있었다..근데 톡방에 9시 50분부터 축하한다고 막 올라와서 나도 부랴부랴 들어가서 보니 합격했다고 적혀있었다ㅠㅠ😭 심장이 인생 최대로 쿵쾅거렸음.. 여튼 과정부터 이야기 해보자면.. 우테코 준비했던 11월 부터라고 해야하나... 프리코스 부터 시작이었던 것 같다. 이것도 최종까지는 갔지만 결국 떨어져서 맘 고생을 심하게 했는데, 그때 내가 알고리즘이 너무 부족하다고 생각하게 되었다.그리고 소마는 처음에 내가 갈 ..

[TIL] Java 멀티스레드 - 인터럽트, yield와 메모리 가시성 (2026.4.23)

1. 인터럽트란?특정 스레드가 WAITING, TIMED_WAITING 같은 대기 상태일 때 강제로 깨워 RUNNABLE 상태로 전환시키는 메커니즘thread.interrupt()를 호출하면 해당 스레드의 인터럽트 상태(flag)가 true로 변경됨sleep(), wait() 등 InterruptedException을 던지는 메서드 실행 중이라면 즉시 예외 발생while(true), 일반 연산 중에는 예외가 발생하지 않음 (인터럽트 상태만 true로 남음)2. runFlag 방식의 한계가장 단순한 스레드 중단 방법은 volatile 변수를 사용하는 것이다.while (runFlag) { log("작업 중"); sleep(3000); // 3초 대기}// main이 4초 뒤에 runFlag = ..

JAVA 2026.04.24

[TIL] Java 멀티스레드 기초 정리 (2026.4.22)

1. 프로세스와 스레드 소개멀티태스킹과 멀티프로세싱단일 프로그램 실행프로그램의 실행이란 프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)하는 일이다. CPU 코어가 1개면 한 번에 하나의 프로그램 코드만 실행 가능하다. 초창기 컴퓨터는 한 번에 하나의 프로그램만 실행할 수 있어서 음악 프로그램이 끝나야만 워드 프로그램을 실행할 수 있었다. 지금 시각으로 보면 매우 불편한 방식이다.[단일 실행 흐름]프로그램A: 코드1 -> 코드2 -> 코드3 -> 코드4 (완료)프로그램B: 코드1 -> 코드2 -> 코드3 -> 코드4 (완료)-> A가 끝난 후에야 B 시작 가능 멀티태스킹 (Multitasking)하나의 컴퓨터 시스템이 동시에 여러 작업을 수행하는 능력이다. 핵심 원리는 시분할(Time Shari..

JAVA 2026.04.22