전체 글 44

가을아침

혹독한 무더위가 지나가고 있다30일 넘는 열대야를 경험했고, 에어컨없이 살기 힘든 주말의 연속이었다회사는 쾌적하였지만, 회사까지 가는것 조차 힘든 여름이랄까... 그렇게 끝나지 않을것만 같았던 이 여름도 조금씩 헤어질 준비를 하는거 같다아침에 집을 나오는데, 이제 그렇게 덥다는 느낌이 없다( 물론 한낮에는 여전히 덥지만 말이다... )오히려 조금 선선한 바람이 부는날이면 가을이 오고 있음을 실감한다 가을에는 가을아침이지!오늘 아침 출근길에 바로 선곡하였다 요즘 회사 분위기가 많이 좋지 않고 일이 많아서 힘든 시기이지만,정말 큰 무더위로 힘든 여름이 지나가듯 이 시기도 지나갈거라고 믿는다꾸준히 공부하면서 가을을 맞이하자

생각정리 2024.09.04

스레드 - interrupt()

스레드의 작업을 중간에 중단하는 방법flag값 설정 및 수정interrupt() 사용 flag값 설정특정 스레드의 실행을 flag 값이 true인 동안 계속해서 작업하도록 설정한다특정 스레드를 중단하는 시점에 flag 값을 false로 바꾼다이렇게 하면, 다음 반복문 실행 시점에 flag 값을 확인하고 해당 작업을 빠져 나온다static class MyTask implements Runnable { volatile boolean runFlag = true; @Override public void run() { while (runFlag) { log("작업 중"); sleep(3000); } log("자원 정리")..

스레드 - join()

join()특정 스레드가 다른 스레드들의 작업이 끝난 후, 무언가를 종합해서 하고 싶다면 join() 메소드를 사용해주면 된다. ex)스레드1 - 1 ~ 50의 합을 구한다스레드2 - 51 ~ 100의 합을 구한다메인 - 스레드1,2의 결과값의 합을 구한다 public static void main(String[] args) { log("start"); SumTask task1 = new SumTask(1, 50); SumTask task2 = new SumTask(51, 100); Thread thread1 = new Thread(task1, "task1"); Thread thread2 = new Thread(task2, "task2"); ..

스레드 제어

쓰레드 기본 정보스레드 ID - 스레드의 고유 식별자, 스레드 생성 시 할당되고, 지정할 수 없다.스레드 이름 - 내가 지정할 수 있고, 중복될 수 있다.스레드 우선순위 - 1(낮음) ~ 10(높음), 기본값은 5, 절대적인 실행순서는 아니다.(힌트)힌트라는 말은, 스케줄러가 '참고'하는 대상으로 인식한다는 정도스레드 그룹 - 스레드가 속한 그룹, 자주 사용하지는 않음부모 스레드 - 모든 스레드는(main 제외) 누군가가 생성해준다. 나를 생성해준 스레드가 부모 스레드스레드 상태 - 스레드의 현재 상태NEW - 스레드가 생성되고 아직 실행되진 않은 상태RUNNABLE - 스레드를 실행중이거나, 실행될 준비가 된 상태BLOCKED - 동기화 락을 기다리는 상태WATING - 다른 스레드의 작업이 완료되기를..

아빠가 되다

2024년 4월 25일 내 인생에 가장 큰 이벤트가 발생하였다.용용이(태명)가 태어난 것 이다! 나는 그렇게 아빠가 되었다. 사실 출산예정일은 5월 12일이었다.그래서, 마음의 준비를 미처 하지 못하고 용용이를 맞이하러 내려갔다. 새벽 6시에 아내에게 전화가 왔었는데, 밤 12시30분부터 진통이 시작되었다고 했다.처음에는 가진통이겠지 싶어서 가족들에게 이야기하지 않았다고 한다ㅠㅠ아내는 극심한 고통을 이겨내며, 새벽에 장모님께서 아내를 발견하기 전까지 혼자 참아왔다.이런 부분은 주말부부를 하고 있는 것 중에 가장 미안한 부분인거 같다ㅠ 나는 서둘러 내려갈 준비를 하였다.정말 운이 좋게도? 전날부터 벨소리를 진동이 아닌 소리로 바꿔두었다.바꾼 첫날에 연락이 올지는 몰랐지만...머리도 감지 못하고 급하게 집을..

생각정리 2024.08.15

스레드의 생성과 실행

스레드의 생성Runnable 인터페이스 구현을 사용하자Thread 클래스 상속Runnable 인터페이스 구현 스레드는 Thread 클래스를 상속해서 만들거나, Runnable 인터페이스를 구현하는 방법으로 생성할 수 있다.실무에서는 Runnable 인터페이스를 구현하는 방법을 선호한다.Thread 클래스를 상속하는 경우, 다른 상속이 있는 경우에는 사용할 수 없다( 다중 상속 X )따라서, 스레드와 실행할 작업을 명확히 나누어서 개발할 수 있는 Runnable 방식을 사용한다.  스레드 생성 - Thread 클래스 상속Thread 클래스 상속 후 run() 메소드를 오버라이딩한다.public class HelloThread extends Thread { @Override public void ..

프로세스와 스레드

멀티태스킹하나의 컴퓨터 시스템이 동시에 여러작업을 수행하는 능력소프트웨어적 관점( 무지하게 빠른 CPU를 잘 활용해보자는 )CPU가 빠르게 여러가지 프로그램의 코드를 번갈아가며 실행하여, 동시에 실행되는 것 처럼! 멀티프로세싱둘 이상의 프로세서(CPU 코어)를 사용하여 동시에 여러 작업을 동시에 처리하는 기술하드웨어적 관점( 코어의 갯수가 여러가지 )코어의 갯수만큼은 동시에 프로그램을 실행할 수 있는 것! 프로세스실행중인 프로그램프로그램이 클래스라면, 프로세스는 인스턴스프로세스별 독립적인 공간 보유코드섹션, 데이터 섹션, 힙, 스택으로 구분( 스택은 스레드별로 주어지고, 나머지는 프로세스별로 주어진다! )스레드를 실행하기 위한 컨테이너의 느낌으로 생각하면 된다 스레드프로세스 내에서 반드시 하나 이상 존재..

단 한줄

프로그래밍은 정말 신기하다. 단 한줄로 서비스에 영향을 줄 수 있기 때문이다. 마치 부품하나가 큰 이슈를 만드는것과 같다. 회사에서 여러 공급사의 가격을 가져와서 최저가를 노출하는 부분이 있었는데, 종종 최저가가 노출되지 않는 이슈가 있었다. 공급사의 이슈라고만 생각했지만, 그래도 혹시 몰라 소스코드를 하나씩 분석해보았다. 유일하게 최저가를 결정하는 로직에는 큰 이슈가 없을거라고 생각했지만, 딱 한줄이 빠진 것을 확인하였다. 그리고 그 한줄이 빠져 0원으로 리턴을 주었고, 이 때문에 최저가가 아닌 가격이 노출되는 이슈가 생긴 것 이다. 시간은 걸렸지만, 찾아서 다행이라는 생각이 들었고, 단 한줄로도 이런 이슈가 발생할 수 있다는 것을 알았다. 조금 더 조심하자!!

생각정리 2024.03.12

[도서후기] 오늘, 또 일을 미루고 말았다

오늘, 또 일을 미루고 말았다 일을 계속 미루게 되는 요즘이다. 퇴근후에는 정말 무엇을 하기가 힘들다. 항상 드는 생각이지만, 해야할게 정말 많은거 같고, 하고자 하는 것도 많은거 같은데 왜 퇴근만 하면 모든게 하기 싫어지는 걸까? 회사에서도 비슷한 시기인거 같다. 조금 장기적으로 업무를 진행할때, 중간에 딜레이 되는 시간이 많아지는 경우 그 틈틈히 집중력을 잃어버리는거 같다. 향로님의 블로그에서 본적이 있는데 제목에 눈이 가서 언젠가 한번 읽어봐야지 했는데, 요즘이 딱 그 타이밍인거 같다. 과연 나는 이 상황을 벗어날 수 있을까? 이 책은 인간의 능력에 한계가 있다는 점을 분명히 한다. 갑자기 엄청난 능력을 끌어올려서 무언가를 하라고 하지 않는다. 책에서 가장 중요하게 여기는건 바로 '시간'이다. 인간..

도서후기 2024.01.29

[인터뷰] 우아한테크 구독자 인터뷰 후기

어쩌다가 인터뷰 어쩌다가 우아한형제들 사무실에 방문하였다. 작년 3월 우아한테크 세미나에 참석할때 한번 방문했었는데, 이번에는 조금 더 자세히 볼 수 있는 기회가 되었다. 우아한형제들에서는 '우아한테크 뉴스레터'를 이메일로 보내준다. 우아한형제들의 기술적인 이슈사항이나, 최근 기술들에 대한 소식을 전해주는? 메일이라고 보면 편하다. 2024년 새해를 맞이하면서 설문조사가 있길래 적극적으로 참여하였다. 그동안 많은 소식을 전해줬으니, 나도 답을 주어야지! 하는 마음으로 참여했던거 같다. ( 물론, 배민 1만원 쿠폰을 준다고 해서 한건 안비밀이다. ) 설문 마지막에, 오프라인으로 인터뷰를 요청하면 받을 의향이 있냐고 물었는데, 크게 고민하지 않고 체크했었다. 그리고 인터뷰 요청이 들어왔다. 개발자 면접이면 ..

생각정리 2024.01.29