목록전체 글 (101)
쯔이's Dev
톰캣은 서블릿 컨테이너(서블릿 서버) 이자 자바 웹 서버.서블릿이란?자바로 만든 웹 애플리케이션을 만들 때 사용하는 자바 기반 웹 기술이다.사용자의 요청(HTTP request)을 받아서, 응답(HTTP response)을 만들어주는 자바 클래스.톰캣(Tomcat)은 뭘까?Apache Tomcat은 서블릿과 JSP(JavaServer Pages)를 실행할 수 있게 해주는 서버.정확히 말하면, 서블릿 컨테이너(Servlet Container) 또는 웹 컨테이너(Web Container) 라고 부른다.톰캣은 HTTP 요청을 받아서 서블릿을 실행하고, 그 결과를 응답으로 클라이언트에 돌려준다.왜 “자바 서버”라고도 불릴까?톰캣은 자바로 만들어졌고, 자바 프로그램을 실행하는 서버니까 “자바 서버”라고도 부른다...
컬렉션키-값 구조사용 메서드설명Map✅ 있음containsKey(key)키가 있는지 확인Set❌ 없음contains(value)값이 존재하는지 확인List❌ 없음contains(value)해당 요소가 존재하는지 확인 “List는 equals만, Set/Map은 equals + hashCode 둘 다!”컬렉션사용 메서드필수 오버라이딩Listequals()만 사용✅ equals()Set (HashSet)hashCode() → equals()✅ 둘 다Map (HashMap)hashCode() → equals()✅ 둘 다 >> containsKey(key)란?Map에서 주어진 키가 존재하는지를 검사하는 메서드if (hMap.containsKey(f)) { return false;}이 containsKey..
이건 자바를 안전하게 쓰려면 꼭 알아야 해요.Objects.hash(null);정답 먼저 !! => 에러 안 납니다.내부적으로 알아서 null을 안전하게 처리해서 해시값을 계산해준다. String kind = null;int hash = Objects.hash(kind);System.out.println(hash); // 출력됨 (예: 31)내부 동작 방식Objects.hash(...)는 내부적으로 Arrays.hashCode()를 호출한다.그 안에서 null이 들어오면 자동으로 0으로 처리해서 계산함public static int hash(Object... values) { return Arrays.hashCode(values);}그래서 null이 들어가도 아래처럼 안전하게 처리됩니다:Objec..
switch 문이란?switch(choice) 는 choice 변수의 값에 따라 해당하는 case를 실행하는 조건문이에요.switch (choice) { case 1: // choice가 1일 때 실행 break; ...} break – 해당 case 실행 후 switch문 빠져나가기역할현재 case의 코드를 실행한 뒤에 switch문을 빠져나가도록 종료시키는 명령어예요.만약 break가 없다면 아래 case들까지 계속 실행돼요. (이걸 "fall-through"라고 해요) 예시case 1: System.out.println("1번 선택"); break; // 다음 case로 넘어가지 않음 break가 없으면?case 1: System.out.println("1번 선..
비교 항목Thread 상속Runnable 구현방법Thread 클래스를 상속받음Runnable 인터페이스를 구현다중 상속 가능 여부불가능 (자바는 다중 상속 지원X)가능 (다른 클래스도 상속 가능)사용 예시Task extends ThreadMyRunnable implements RunnableThread 생성 방법new Task().start();new Thread(new MyRunnable()).start();권장 여부단순한 경우 사용 가능권장됨 (유연성이 높음) Thread를 직접 상속하는 것은 제한적이며 다중 상속이 불가능하기 때문에 대부분 Runnable 구현을 선호Runnable을 사용하면 다른 클래스를 상속하면서도 쓰레드 기능을 추가할 수 있음 쓰레드 실행 순서가 랜덤인 이유운영체제(OS) 스케..
Stream은 "데이터가 흘러가는 통로"! Socket은 "데이터가 드나드는 출입구 Stream은 Socket 안에서만 존재해요.Packet은 Socket 안에 있는 게 아니라, Socket을 통해 주고받는 독립된 데이터 덩어리! UDP에서도 DatagramSocket (소켓)이 필요하지만, Stream은 필요 없음!>> Socket이 없다면 Stream도 사용할 수 없어요!Stream의 종류 — InputStream과 OutputStream Stream 종류역할예시InputStream데이터를 읽어들이는 통로socket.getInputStream() → 서버에서 데이터를 받음OutputStream데이터를 내보내는 통로socket.getOutputStream() → 서버로 데이터를 보냄 Socket 안에서..