본문 바로가기
반응형

전체 글322

[우테코] 톰캣 구현 미션 학습 로그 목차 요구사항 학습 내역 톰캣을 쓰는 이유 입출력과 버퍼 catalina vs coyote 스레드 풀 설정 추가 미션 HTTP 활용하기 Thread 활용하기 1. 요구사항 🍳 미션 수행 내역은 깃허브 레포지토리에 branch 별로 분류해두었습니다. 🥚 1단계 http://localhost:8080/index.html 페이지에 접근 가능하다. 접근한 페이지의 js, css 파일을 불러올 수 있다. uri의 QueryString을 파싱하는 기능이 있다. 🥚 2단계 HTTP Reponse의 상태 응답 코드를 302로 반환한다. POST로 들어온 요청의 Request Body를 파싱할 수 있다. 로그인에 성공하면 HTTP Reponse의 헤더에 Set-Cookie가 존재한다. 서버에 세션을 관리하는 클래스가 있.. 2022. 9. 29.
[Spring] DispatcherServlet 1. DispatcherSevlet이란? 🌺 🌱 Dispatcher란? dispatch: 보내다 dispatcher: (열차, 버스 등이 정시 출발하도록 관리하는) 운행 관리원 🌱 Servlet이란? 웹 서버 내에서 실행되는 작은 Java 프로그램 일반적으로 HTTP를 통해 웹 클라이언트의 요청을 수신 & 응답 🌱 DispatcherServlet이란? dispatcher + servlet 단어의 조합에서 추측해보면 클라이언트의 요청 수신/응답을 관리하는 작은 Java 프로그램 정도로 추측할 수 있을 것 같다. 스프링의 웹 MVC 프레임워크는 요청 기반(request-driven)이다. 컨트롤러에게 요청을 보내고(dispatch) 웹 애플리케이션 개발에 용이한 기능 등을 제공하는 중앙 서블릿이 존재한다. .. 2022. 9. 28.
[우테코/줍줍] 5차 스프린트 회고 개발 일지 설정 파일 관리 운영/개발 완전 분리 DB 설정 변경 톰캣 설정 변경하기 (feat. 부하 테스트) 있었던 이야기 첫 릴리즈와 회식 독서 모임 앞으로의 계획 1. 개발 일지 🔮 💜 설정 파일 관리 기존에는 profile별로 yml을 분리해서 관리하고 있었다. 헌데 지난번 레벨3 인터뷰 때 yml은 profile별로 파일을 분리하지 않아도 되는데 왜 분리해서 쓰는지에 대한 질문을 받았다. 솔직히 말하자면 하나로 관리할 수 있다는 사실을 몰랐기에 그런건데.. 이번 기회에 하나로 쓰는 방법을 학습해보고자 적용해보았다. 사용법은 간단하다. 그저 '---'를 추가해주면 된다. 헌데 지금은 줍줍 설정 파일에 많은 값이 들어있지 않지만 많은 설정 값들이 profile마다 바뀌어야한다면? 오히려 파일을 분리.. 2022. 9. 26.
[MySQL] DATETIME vs TIMESTAMP 🙄 서론 🙄 JPA를 쓰다보면 엔티티 정보에 따라 자동으로 생성해주는 DDL을 볼 수 있다. LocalDateTime 타입을 포함한 엔티티가 있었는데 해당 필드를 timestamp로 만들어주는 모습을 볼 수 있었다. datetime이라는 타입도 있는걸로 아는데 왜 timestamp로 만들어줄까? 라는 궁금증이 생겨 찾아보게 되었다. 💥 DATETIME vs TIMESTAMP 💥 🔸 공통점 MySQL에서 날짜를 나타내는 필드 기본적으로 'YYYY-MM-DD hh:mm:ss'으로 표시 값을 설정하여 최대 6자리 microseconds 저장 가능 (ex: DATETIME(6), TIMESTAMP(6)) 🔸 차이점 DATETIME은 '1000-01-01 00:00:00'에서 '9999-12-31 23:59:59.. 2022. 9. 25.
Windows에서 8080 port 사용이 불가능한 현상 💣 사건의 시작 로컬에서 프로젝트를 실행 시키다가 java.net.BindException: Address already in use: bind 에러가 발생했다. 내가 실행시키려던 8080 포트가 충돌이 일어나서 발생한 에러이다. 해결책은 간단하다. 1. PID 조회 Linux $ lsof -i:포트번호 Windows $ netstat -ano | findstr "포트번호" 2. 프로세스 종료 $ kill PID번호 💥 문제의 발생 8080 포트의 PID를 조회하기 위해 netstat을 실행시켰다. 그런데... 명령어가 잘못되었나 싶어서 이미 구동중인 포트 번호로도 확인해보았다. 😡 의심되는 원인 발견 windows와 8080 port 키워드로 이것저것 구글링 하다보니 hyper-v라는 키워드를 발견하게.. 2022. 9. 18.
[Java] Thread Pool 이해하기 📚 함께 읽으면 좋은 글 프로세스와 스레드 Thread 이해하기 📑 목차 Green Thread vs Native Thread Java는 어떤 스레드를 사용하는가 Thread Pool 💥 Green Thread vs Native Thread 🔸 Green Thread = Virtual Thread User Level Thread OS가 아닌 library 또는 Virtual Machine에 의해 다뤄지는 스레드 기본 OS 기능에 의존하지 않고 다중 스레드 환경을 모방 실제로 여러 코어에서 사용하는 것은 불가능 차단 시스템 호출 시 같은 프로세스 내의 모든 스레드가 차단됨 🔸 Native Thread = Non-Green Thread Kernel Level Thread OS에 의해 다뤄지는 스레드 ❓ Ja.. 2022. 9. 12.
동시성 (Concurrency) vs 병렬성 (Parallelism) 😎 서론 이전 포스팅에서 동시성과 병렬성 차이에 대해서 아래처럼 간략하게 서술했었다. 동시성: 하나의 코어에서 여러 스레드가 번갈아가며 실행 병렬성: 멀티 코어에서 여러 스레드를 동시에 실행 책의 내용을 단어만 좀 바꿔서 인용해온 것이기도 하고 어떤 상황인지 상상이 갔기 때문에 납득하고 넘어갔었다. 근데 트위터에서 디클님이 아래와 같은 내용을 알려주셨다. 내가 서술한 내용이 틀린 것은 아니지만 그 외의 상황에서 더 자주 발생한다고 설명해주셨고 그 상황들에 대해서 궁금해졌다. 그래서 동시성과 병렬성에 대해서 좀 더 구체적으로 공부해보려 한다. ✨ 동시성; Concurrency 동시성은 여러 작업이 겹치는 기간에 실행될 수 있음을 의미한다. 동시에 실행하는 것이 아니라 CPU가 작업마다 시간을 분할해 적절하.. 2022. 9. 10.
[토비의 스프링] Chapter 1. 오브젝트와 의존관계 토비의 스프링을 SQ3R 방식을 도입해 읽는 시도를 하고 있습니다. 목차만 보고 궁금한 점들을 작성한 뒤, 책을 읽고 답변을 정리합니다. ❓ 관심사를 분리해야 하는 이유 👉 요구사항은 끊임없이 변경되고 발전한다. 모든 관심사들이 한 곳에 응집되어 있다면 해당 오브젝트는 끊임없이 변화해야 한다. 추가로 해당 오브젝트를 의존하고 있는 다른 오브젝트에까지 영향이 갈 수 있다. 이 변화의 폭을 최소화하기 위해서 관심사를 최대한 분리해야 한다. ➕ 오브젝트끼리 의존을 제거하면 되지 않을까요? 👉 불필요한 코드의 중복이 많아질 수 있다. 예를 들어 UserDao, BoardDao, CommentDao에서 DB 연동과 관련된 설정이 필요하다고 가정해보자. 모든 Dao에서 DB 연동 코드를 작성할 것인가? DB 연동 .. 2022. 9. 10.
[Java] Thread 이해하기 이 글에서는 Thread 클래스는 'Thread', 개념적 의미의 스레드는 '스레드'로 표기한다. 먼저 프로세스와 스레드의 차이에 대해 잘 모르는 사람들은 이 글을 읽기 바란다. [OS] 프로세스와 스레드 프로그램 어떤 작업을 위해 실행할 수 있는 파일 메모리에 올라가지 않은 Windows의 *.exe 같은 정적 파일 (메모리에 올라가다: 실행을 하려면 OS가 독립적인 메모리 공간을 할당해줘야 함) 프로세스 yeonyeon.tistory.com 스레드를 생성하는 방법으로는 두 가지가 있다. implements Runnable extends Thread 🔻 Runnable vs Thread 더보기 어느 것을 이용해 스레드를 생성하는 것이 좋을까? 어느 쪽이든간에 별 차이는 없지만 Thread 클래스를 상속.. 2022. 9. 8.
반응형