💋 오늘 공부한 내용 미션에 쓰레드 적용해봄. 레오랑 이야기하다가 좀 놀라운걸 알게됨. 쓰레드 풀이 다 차고, max threads가 core thread 이상일 때 곧바로 새로운 쓰레드를 생성하는게 아니라고 한다! queue가 다 찰 때까지 기다리고, queue까지 다 차게되면, 그때서야 새로운 쓰레드를 만들고, 그 뒤에 들어온 요청이 새로운 쓰레드를 가져간다고 (너무 불합리한거 아닌가?) 여태까지 내가 겪은 모든 수강신청의 불합리는 다 이 불합리한 자바 개발자의 생각에서 온게 아닐까? 공익을 위해 고소해야지~ 💋 오늘의 포스팅 https://engineerinsight.tistory.com/202 [우테코] 임시 회원 ↔ 가입회원 데이터 연동기(2): 테이블 구조 대공사 + 데이터 연동 API 구현!..
분류 전체보기
💋 오늘 공부한 내용 어제 TIL을 깜빡해서 먼저 어제 일부터 몰아서 같이 쓰기로... 어제 공부한 내용 어제는 공부는 따로 안하고, 파주에 있는 카페에 가서 스탬프크러쉬 진짜 중요한 기능 개발을 했다. 바로바로 임시 회원 데이터 연동 기능! 자세한 내용은 이전에 이 포스팅에서 완전 초 자세히 설명해놨다. 그래서 무튼 한 2시간만에 테스트코드까지 잘 짜서 만들고, PR 올려놨다. 오늘은 교회 다녀와서, 준팍이 남겨준 리뷰 바탕으로 리팩터링했다. Response를 체이닝으로 만들어서 최대한 가독성을 높이려고 노력했는데 칭찬받아서 매우 기뻤씀. 톰캣 구현하기 미션에서 2일 전에 쓰레드 공부를 좀 했었는데, 쓰레드는 뭔가 아리까리.. 비전공자로 우테코 시작 전에는 프로세스 쓰레드 들어본 적도 없었고, 한동안 ..
💋 동기화 문제 발생 class SynchronizationTest { @Test void testSynchronized() throws InterruptedException { ExecutorService executorService = Executors.newFixedThreadPool(3); SynchronizedMethods summation = new SynchronizedMethods(); IntStream.range(0, 1000) .forEach(count -> executorService.submit(summation::calculate)); executorService.awaitTermination(500, TimeUnit.MILLISECONDS); assertThat(summation..
💋 쓰레드 풀의 필요성 서버는 동시에 여러 사용자가 접속할 수 있습니다. 자바에서는 스레드를 운영 체제의 자원으로 사용합니다. 우리가 스레드를 계속해서 만들면, 운영 체제의 자원이 빨리 소진될 수 있어요. 서버는 동시 접속자가 많아지면 스레드가 무한대로 생성되면서 서버가 다운될 위험이 있습니다. 애플리케이션 프로세스에서 사용되고 있는 쓰레드의 개수를 관리하기 위해서 쓰레드 풀을 도입할 수 있습니다. 💋 쓰레드 풀이란? ✔ 개념 쓰레드 풀은 미리 일정 개수의 쓰레드를 생성하여 관리하는 기법입니다. 이렇게 생성된 쓰레드들은 작업을 할당받기 위해 대기 상태에 있게 되는데, 작업이 발생하면 대기 중인 쓰레드 중 하나를 선택하여 작업을 수행합니다. 작업이 완료되면 해당 스레드는 다시 대기 상태로 돌아가고, 새로운..
💋 오늘 공부한 내용 쓰레드 관련해서 공부를 했는데 좀 아리까리.... synchronized에 대한 밸덩 글 읽었다. 신기... 메서드 자체에 synchronized 붙이는건 잘 이해가 되는데, 메서드 내부에서 별도로 블록을 형성할 때 인스턴스 메서드면 this, 정적 메서드면 클래스이름.class를 넣는다는데 이게 이해가 안됨! 내 어시스턴트에게 물어보니, 객체 자체에 접근을 막는다고 한다...! 신기 💋 오늘의 포스팅 https://engineerinsight.tistory.com/196 [JAVA] 프로세스와 스레드: 개념, Java의 쓰레드 구현, I/O Blocking 💋 인트로 과거의 컴퓨터는 한 번에 하나의 작업만 가능했다. 사진을 다운로드 받는 작업, 마우스나 키보드로부터 입력을 받는 작..
💋 인트로 과거의 컴퓨터는 한 번에 하나의 작업만 가능했다. 사진을 다운로드 받는 작업, 마우스나 키보드로부터 입력을 받는 작업, 브라우저로 사이트를 돌아다니는 작업을 동시에 할 수 없었다. 이후 컴퓨터는 동시에 여러 개의 작업을 하는 멀티태스킹이 가능해졌다. 배경에 있는 프로세스, 쓰레드에 대해 알아보자. 💋 개념 프로세스 실행중인 프로그램 프로그램을 실행하면 OS로부터 자원(메모리)을 할당받아 프로세스가 됨. 쓰레드 프로세스의 자원을 이용해 실제로 작업을 수행하는 것 프로세스의 구성 자원(데이터, 메모리) + 쓰레드 모든 프로세스는 1개 이상의 쓰레드가 존재 2개 이상의 쓰레드를 가진 프로세스는 ‘멀티 쓰레드 프로세스’ 💋 멀티쓰레딩의 장단점 장점 CPU 사용률 향상 자원을 효율적으로 사용할 수 있음..
💋 오늘 할 일 프로젝트) 백엔드 데이터 연동 논의하기 레오의 엔티티 대공사 코드 리뷰하기 미션) HTTP 서버 3단계 리팩터링하기 미션) 쓰레드 실습하기 공부) 테코톡 듣기 💋 오늘 공부한 내용 오늘은 컨디션이 좀 안죠오..... 우테코에서 골골대다가 집에 가버렸다. 간신히 프로젝트 내용만 해서 별도로 공부는 잘 못한듯 >
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 혼자서 해당 내용을 개발하겠다고 맡았는데, 중간에 큰 문제가 발생해서 전 팀원이 매달릴 정도로 좀 어려운 상황이 발생해서 정리해보려고 한다. 💋 만들려고 하는 기능의 플로우 소개 ✔ 이 기능이 필요한 이유 우리 서비스는 전화번호를 통한 간편한 적립을 우리 서비스의 핵심 가치로 생각하고 있다. 따라서 이전에 스탬프크러쉬 서비스에 가입한 적이 없던 고객도 전화번호만 눌러서 간편하게 적립을 할 수 있는 등 서비스를 제한적으로 사용할 수 있고, 이후에 직접 웹사이트로 들어와 서비스를 이용하려면 간편한 회원가입..
💋 오늘 공부한 내용 오늘 강의는 공부해야 할 키워드를 많이 던져준... 아래 기술 부채를 쌓고 공부해봐야 할 것 같다. 세션 확장 시 문제점 해결책 → session clustering, skicky session, shared session storage Thread Interference, Memory Consistency Errors Thread-safe class를 작성하기 위한 방법 어제 강의에서 진행했던 캐시에 대한 실습을 했다. HTTP 서버 구현하기 코드에 대한 리뷰를 반영했다. 💋 감정 회고 진짜 레벨4가 왜 바쁘다는지 제대로 딱 2일 생활해보고 알 것 같다. 그만큼 레벨4 끝날 때는 좀더 웹 개발에 대해서 많이 알 수 있을 것 같긴 하다...! 💋 오늘의 포스팅
💋 오늘 공부한 내용 아침에 좀 일찍 와서 Dispatcher Servlet에 대해서 공부했다. 레벨2 때 레벨인터뷰 앞두고 막 외웠을 때랑 다르게 직접 만들다보니깐 서블릿 컨테이너 구성하는 빈들이 각각 뭘 하는지 좀 더 잘 와닿는 느낌 HTTP Cache에 대한 강의를 들었다. 강의 듣고 아래 블로그 포스팅 내용을 정리했음. 오랜만에 팀 전체회의! 최종 데모데이 때 사용자들이 느꼈던 UI 상의 불편점 때문에 회의를 했다. 전화번호 입력 시에 임시 회원을 사소하게 프론트에서 백엔드로 보내는 요청을 지연하도록 해결했다. 자세한 내용은 스탬프크러쉬 개발 회고 글의 아랫 부분에 추가했다. 우리 서비스의 메인 페이지인 고객모드의 쿠폰 조회 페이지에서, 쿠폰의 최대 스탬프 개수만큼 적립하면, 해당 쿠폰이 조회 페..