본문 바로가기

전체 글53

[Java] 스레드의 생성과 생명주기 스레드 생성스레드 생성 방법은 두 가지 입니다.Thread 상속 받기public class HelloThread extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName() + ": run()"); }} 스레드를 직접 상속 받으면 문제가 있습니다.자바는 다중 상속을 지원 하지 않습니다. 스레드를 상속 받을 경우 다른 상속을 받을 수 없습니다.스레드의 불필요한 부분을 상속 받는 문제가 있습니다. 스레드의 작업만 재정의 하기 때문에 상속을 받을 필요가 없습니다.스레드 상속 보다는 Runnable 인터페이스를 이용한 스레드 생성을 주로 합니다.  Runnable 인터.. 2024. 11. 10.
[Java] 프로세스와 스레드 멀티테스킹 멀티태스킹이란 뭘까요?페이커 선수가 여러 게임을 플레이 하는 것 처럼 보이지만 실제 CPU는 한번에 한 작업 밖에 하지 못합니다.실행이 너무 빠르기 때문에 눈으로 봤을땐 마치 동시에 실행 되는 것 처럼 보이는데요이렇게 컴퓨터 시스템이 동시에 여러 작업을 수행 하는 능력을 멀티태스킹 이라고 합니다.   프로세스프로그램이 실행 되기전 까진 단순한 파일에 불과 합니다.운영체제 안에서 실행중인 프로그램을 프로세스라고 합니다.프로세스는 실행 중인 프로그램의 인스턴스 입니다.프로세스는 독립적인 메모리 공간을 가지고 있습니다.따라서 프로세스는 자신의 메모리 공간만을 참조 하며 다른 프로세스는 간섭 하지 않습니다.즉. 프로세스가 작동이 중단 되어도 다른 프로세스에 영향을 주지 않습니다. 스레드 스레드는 프로.. 2024. 11. 9.
[백준/G3/BFS/자바] 2146. 다리 만들기 💡 문제https://www.acmicpc.net/problem/2146 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다는 생각을 하게 되었다. 그래서 그는, 생색내는 식으로 한 섬과 다른 섬을 잇는 다리 하나만을 만들기로 하였고, 그 또한 다리를 가장 짧게 하여 돈을 아끼려 하였다.이 나라는 N×N크기의 이차원 평면상에 존재한다. 이 나라는 여러 섬으로 이루어져 있으며, 섬이란 동서남북으로 육지가 붙어있는 덩어리를 말한다. 다음은 세 개의 섬으로 이루어진 나라의 지도이다.  위의 그림에서 색이 있는 부분이 육지이고, 색이 없는 부분이 바다이다. 이 바다에 가장 짧.. 2024. 9. 7.
[Spring] @ExceptionHandler API 에러 핸들링 🎉@ExceptionHandler 예외 상황이 발생 했을 때 예외를 처리 하고 Json 오류 안내를 해주거나 오류페이지로 이동 할수 있게 해주는ExceptionResolver의 한 종류 입니다.  📝 간단한 API컨트롤러는 Json 타입으로 상품 이름과 가격을 입력 받습니다.@RequestBody는 받은 Json을 한번에 orderDto에 매핑을 시도 합니다.이때 int 값인 price에 String 값을 받게 되면 어떻게 될까요? 정상 값정상적인 경우 받은 이름과 가격을 그대로 Json으로 반환 합니다. 실패 값실패한 경우 Json으로 결과 값을 받게 됩니다. 오류 처리 흐름1. 컨트롤러에서 예외가 발생 합니다.2. ExceptionResolver 우선순위에 따라 처리 할수 있는 resolver를 .. 2024. 9. 6.
[Spring] 필터, 인터셉터 (Interceptor) 💡 문제 상황로그인을 한 유저 A는 모든 요청을 허용 하지만비 로그인 유저는 아이템 등록 폼으로 가는 것을 막고 싶습니다.이럴땐 필요한 것이 필터 입니다. 💡 필터요청 흐름WAS( 톰캣 ) > 필터 > 서블릿( DispatcherServlet ) > 컨트롤러 비로그인 한 유저는 필터에서 검증을 해서 막게 되면 서블릿, 컨트롤러 호출을 막을 수 있습니다. 필터 메서드init() : 필터의 시작을 나타내는 메서드destory() : 필터의 끝을 나타내는 메서드⭐️doFilter( ) : 필터의 주요 메서드로  실제 검증 기능을 합니다. dofilter 에서 비 로그인 사용자가 허가 되지 않은 url로 들어 왔다면 login 입력 폼으로 되돌리고로그인에 성공 한다면 자신이 들어온 입력폼으로 redirect.. 2024. 9. 5.
[Spring] 쿠키, 세션 (Cookie, Session) 💡 로그인 서비스를 구현할때 로그인은 필수 기능 입니다.하지만 Http = 무상태 ( Stateless ) 이기 때문에 다시 접속할때 유저 정보를 주지  않으면서버는 어떤 유저가 접속 한 것 인지 알 수 없습니다.  그렇다면 로그인 유저의 정보를 서버는 저장을 해야하는데 어떻게 해야 할까요?파라미터 값으로 유저의 정보를 계속 줄 순 있지만 이 방식은 비효율적 입니다.그레서 등장한 것이 쿠키 입니다. 💡 쿠키 유저가 로그인을 할 경우 응답값에 쿠키를 넣어 줍니다.다음 응답시 마다 유저는 쿠키를 보여 주며 자신이 등록된 유저임을 증명 하게 됩니다. ⭐️ 쿠키 종류 세션 쿠키 : 쿠키의 만료 시각을 명시 하지 않으면 쿠키는 세션이 끝날때 삭제 됩니다.지속 쿠키 : expries 속성에 날짜를 지정하거나, .. 2024. 9. 4.