본문 바로가기
반응형

분류 전체보기150

[나혼자공부] 5주차 복습-2 오늘도 힘내자!오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! 세션을 사용할 때 서버 측에서 어떤 방식으로 클라이언트를 식별하나요?일반적으로 세션 ID는 쿠키에 저장됩니다. 클라이언트는 서버로 요청을 보낼 때 이 쿠키를 함께 전송하여 세션을 유지합니다. 세션을 언제 생성하고 관리하는지 설명해 주세요클라이언트가 서버에 처음 접속하면 서버는 새로운 세션을 생성하고 고유한 세션 ID를 발급합니다. 서버는 세션 정보를 메모리 또는 외부 저장소에 저장합니다.디스패처 서블릿이 무엇인가요?클라이언트 요청을 적절한 컨트롤러로 전달하고, 응답을 생성하여 반환하는 역할을 합니다. 클라이언트에서 받은 요청을 디스패처 서블릿이 .. 2025. 1. 4.
[나혼자공부] 5주차 복습-1 으ㅇ아아ㅏ아아ㅏ 공부할께 많다아ㅏ 오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! 서블릿은 웹 서버예요? WAS예요?서블릿(Servlet)을 실행하려면 서블릿 컨테이너같은 WAS가 필요하지만 웹서버나 WAS가 아닙니다. 자바 기반 웹 어플리케니션의 구현 기술이고 동적인 콘텐츠를 생성하기 위해 사용됩니다.웹 서버와 와스를 구분하는 이유에 대해 설명해 주시겠어요?웹 서버와 WAS는 역할과 책임이 다릅니다. 웹 서버는 주로 정적인 콘텐츠를 클라이언트에 제공하고 WAS는 동적인 콘텐츠를 생성하는 차이가 있습니다.로드 밸런싱을 위해 웹 서버를 사용하는 경우, 어떤 설정이 필요한가요?Nginx, HTTP Server등.. 2025. 1. 3.
[Spring] Filter, AOP, Interceptor 그리고 Middleware 실무에서 개발하면서 찾아봐야지~ 찾아봐야지~ 했던 filter, aop, interceptor 부분을 드디어 공부해본다! 차이점 미리보기특징FilterAOPInterceptorMiddleware적용 레벨HTTP 요청/응답메서드/클래스컨트롤러 전후요청/응답주요 사용 사례보안, 로깅트랜잭션, 로깅인증, 데이터 가공요청 처리프레임워크 종속성낮음높음(Spring 등)높음(Spring MVC)높음 (Spring Boot)설정 위치web.xml/Java ConfigBean 등록Handler 설정Spring Config코드 복잡도중간높음중간낮음요약Filter는 주로 HTTP 요청/응답을 다루며, 프레임워크에 종속되지 않아 표준적이다.AOP는 메서드 수준의 로직 분리에 적합하며, 코드 재사용성과 유지보수성이 뛰어나다... 2025. 1. 2.
[Algorithm] 시간복잡도 (amortized time complexity) 알고리즘을 좀 제대로 공부해보기 위해서 일요일이지만 공부 도저어언! 시간 복잡도 (amortized time complexity)시간 복잡도는 알고리즘이 실행되는 동안 걸리는 시간을 입력 크기 n에 따라 측정하는 방식이다. 간단하게 말하면, "데이터 크기가 커질수록 알고리즘이 얼마나 느려지는지"를 나타낸다.계산 과정기본 연산 찾기: 알고리즘에서 가장 자주 반복되는 핵심 연산(덧셈, 비교, 곱셈 등)을 찾는다.반복 횟수 세기: 이 기본 연산이 몇 번 실행되는지 n에 대해 식을 세운다.가장 큰 영향 찾기: 계산 결과에서 입력 n이 커질수록 지배적인 항(가장 빠르게 증가하는 항)만 고려한다.상수 제거: 상수는 무시한다. (예: 3n^2 + 5n + 10 -> O(n^2))대표적인 종류O(1): 상수 시간. 입.. 2024. 12. 31.
[나혼자공부] 4주차 복습-2 오늘도 힘내자!오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...!직렬화 과정에서 serialVersionUID의 역할은 무엇인가요?내 답변: serialVersionUID는 클래스의 고유 ID로 직렬화 및 역직렬화 과정에서 사용됩니다. 자바는 클래스의 구조가 변경되었는지 확인하기 위해 직렬화된 객체의 serialVersionUID를 비교합니다. 동일하면 역직렬화 성공하고 다르면 InvalidClassException 예외가 발생됩니다.왜 Serializable을 구현해야 할까요?내 답변: 객체를 직렬화(Serialization)해서 바이트 스트림으로 변환할 수 있게 됩니다. 객체를 파일에 저장하거나 네트워크로 .. 2024. 12. 26.
[나혼자공부] 4주차 복습-1 으아아아 뭔가 많아아아아오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! 스레드 생명주기를 설명해 주세요.내 답변: 스레드 생명주기는 다섯가지 상태로 나눕니다. 첫번째는 New일때 인데요 스레드 객체가 생성되었지만 아직 시작되지 않은 상태입니다. start() 메소드가 호출되 면 Runnable상태로 들어가는데요 실행 대기열에 등록되고 실행 가능한 상태입니다. 이후에는 JVM의 스케쥴러에 의해 CPU를 할당 받으면 Running 상태로 들어갑니다. 실행중 잠시 멈춰야하는 상황이 발생하면 Blocked 상태가 됩니다. 스레드의 실행이 끝나면 Terminated 상태가 됩니다.스레드 풀의 스레드들이 작업을 처리하.. 2024. 12. 25.
[JAVA] 불변객체, 가변객 뭔지는 알겠는데 자세히 좀 더 알아보자 음 String은 불변이고 StringBuffer 랑 StringBuilder는 가변이래 알겠어 알겠는데 그래서 구조랑 뭐 데이터 할때 어케하는건데!?일단 정의 부터 알아보자!불변 객체란?객체가 한 번 생성되면 그 상태를 변경할 수 없는 객체이다.대표적인 예: String, Integer, LocalDate 등.불변 객체의 장점안정성과 스레드 안전성상태가 변하지 않으므로 여러 스레드에서 동시에 사용해도 안전하다.추가적인 동기화 없이 읽기 전용 데이터로 활용할 수 있다.예: String은 여러 스레드에서 공유될 때 안전하게 사용할 수 있음.설계상태가 변하지 않으므로 객체의 상태를 추적하거나 변경을 고려할 필요가 없다.디버깅과 유지보수가 더 쉬워진다.해시 기반 컬렉션과의 호환성HashMap이나 HashSet.. 2024. 12. 25.
[JAVA] LinkedList 알꺼같으면서도 모르겠다. 면접에서 가장 자주 나오는 개념인 LinkedList인데... 아는거 같으면서도 잘 모르겠는 부분이 많아서 질문 받아서 대답하면 어버버버 한다... 오늘 해결해보자!오늘의 한줄 요약: LinkedList 에서 데이터를 찾는 방법은 순차 탐색(Sequential Search)을 기반으로 이루어진다!LinkedList의 구조 이해LinkedList는 노드(Node)들의 연결로 이루어져있다.각 노드는 두가지 요소를 가지고 있음!데이터(Data): 노드가 저장하고 있는 실제 값.포인터(Next): 다음 노드를 가리키는 참조데이터를 10 -> 20 -> 30 순서로 저장한 LinkedList는 아래와 같다아:[10 | Next] -> [20 | Next] -> [30 | Null]Head: List의 시작 노드를.. 2024. 12. 23.
[JAVA] 타입 캐스팅 시 발생하는 오버플로우? Java에서는 타입 캐스팅을 수행할 때, 특히 정수형 데이터를 더 작은 크기의 정수형으로 캐스팅할 때 오버플로우가 발생할 수 있다.JVM 내부에서는 이 오버플로우를 특별히 에러로 처리하지 않고, 단순히 값의 하위 비트만 취하는 방식으로 처리한다! 처리 과정비트 자르기더 큰 정수형 데이터를 더 작은 정수형으로 캐스팅하면, 상위 비트를 잘라내고 결과적으로 잘린 하위 비트만 새로운 값으로 사용한다.예를 들어, int를 byte로 변환할 때, int의 하위 8비트만 유지된다.값의 손실상위 비트를 잘라내는 과정에서 정보가 손실될 수 있다.오버플로우나 언더블로우와 관계없이 자바는 이를 단순히 값 변환으로 간주한다.2의 보수 연산 규칙 적용정수는 자바에서 2의 보수 표현을 사용하므로, 하위 비트를 유지한 결과가 2의.. 2024. 12. 22.
반응형