본문 바로가기
반응형

Study36

[Algorithm] BFS, DFS, 이진 탐색, 순차 탐색 등 알아보자... 아~ 알고리즘 너무 어려워~ 하지만 공부 하고 넘어가야겠지...? BFS(Breadth-First Search) - 너비 우선 탐색BFS는 가장 가까운 노드부터 차례대로 탐색하는 방식이다.하나의 노드를 방문한 후, 그 노드와 인접한 모든 노드를 먼저 방문하고, 그 다음으로 인접한 노드를 방문하는 방식이다.예시: 친구 관계 탐색상황: 친구들 간의 관계를 나타낸 그래프가 있다고 가정해보자! 'A'라는 친구가 있고 'A'의 친구들은 'B', 'C', 'D'이다. 이제 'A'와 가장 가까운 친구들을 먼저 만나고, 그 다음으로 더 먼 친구들을 만날거다.A - B - E| |C - D탐색 순서(BFS)'A'를 시작으로 'B', 'C', 'D'를 차례대로 방문한다.그다음 'B'의 친구인 'E'를 방문하게된다.BF.. 2025. 1. 9.
[나혼자공부] 6주차 복습-2 오늘도 힘내자!오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! DI와 DIP의 주요 차이점은 무엇인가요?DI는 객체간의 의존성을 외부에서 주입하여 객체간의 결합도를 낮추는 개념이고 DIP는 추상화가 구체화를 의존하는 것이 아니고 구체와가 추상화에 의존해야한다는 설계 개념입니다. DIP는 설계의 원칙을 제공하는 것이고 DI는 이를 구현하는 실질적인 개념입니다.디자인 패턴을 선택할 때 어떤 기준을 가장 우선시하시나요?해결하려는 문제가 어떤 것인지 명확해야 하고 패턴을 사용함으로써 성능문제가 발생하지 않을지 판단해야합니다.프록시 패턴을 사용하는 상황과 이 패턴이 해결할 수 있는 문제점을 설명해주세요 싱글턴 패턴의.. 2025. 1. 9.
[나혼자공부] 6주차 복습-1 오늘은 가수 솔리드노래를 들으며  SOLID개념에 대해서 공부하였다. 오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! SOLID 원칙에 대해 설명해주세요.SRP(Single Responsibility Principle) 단일 책임 원칙: 클래스는 하나의 책임만 가져야하며, 변경사유는 하나뿐이다.OCP(Open Closed Principle) 개방-폐쇄 원칙:자신의 확장에는 열려있고, 주변의 변화에는 닫혀있어야 한다.LSP(Liskov Substitution Principle) 리스코프 치환 원칙 : 자식 클래스는 부모클래스의 기능을 대체할 수 있어야 한다.ISP(Interface Segregation Pri.. 2025. 1. 8.
[나혼자공부] 5주차 복습-2 오늘도 힘내자!오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! 세션을 사용할 때 서버 측에서 어떤 방식으로 클라이언트를 식별하나요?일반적으로 세션 ID는 쿠키에 저장됩니다. 클라이언트는 서버로 요청을 보낼 때 이 쿠키를 함께 전송하여 세션을 유지합니다. 세션을 언제 생성하고 관리하는지 설명해 주세요클라이언트가 서버에 처음 접속하면 서버는 새로운 세션을 생성하고 고유한 세션 ID를 발급합니다. 서버는 세션 정보를 메모리 또는 외부 저장소에 저장합니다.디스패처 서블릿이 무엇인가요?클라이언트 요청을 적절한 컨트롤러로 전달하고, 응답을 생성하여 반환하는 역할을 합니다. 클라이언트에서 받은 요청을 디스패처 서블릿이 .. 2025. 1. 4.
[나혼자공부] 5주차 복습-1 으ㅇ아아ㅏ아아ㅏ 공부할께 많다아ㅏ 오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! 서블릿은 웹 서버예요? WAS예요?서블릿(Servlet)을 실행하려면 서블릿 컨테이너같은 WAS가 필요하지만 웹서버나 WAS가 아닙니다. 자바 기반 웹 어플리케니션의 구현 기술이고 동적인 콘텐츠를 생성하기 위해 사용됩니다.웹 서버와 와스를 구분하는 이유에 대해 설명해 주시겠어요?웹 서버와 WAS는 역할과 책임이 다릅니다. 웹 서버는 주로 정적인 콘텐츠를 클라이언트에 제공하고 WAS는 동적인 콘텐츠를 생성하는 차이가 있습니다.로드 밸런싱을 위해 웹 서버를 사용하는 경우, 어떤 설정이 필요한가요?Nginx, HTTP Server등.. 2025. 1. 3.
[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을 구현해야 할까요?내 답변: Serializable 은 클래스가 직렬화 가능하다는 것을 나타내는 인터페이스입니다. 자바에서 직렬화는 Serializabl.. 2024. 12. 26.
[나혼자공부] 4주차 복습-1 으아아아 뭔가 많아아아아오늘의 공부 내용내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...! 스레드 생명주기를 설명해 주세요.내 답변: 스레드 생명주기는 다섯가지 상태로 나눕니다. 첫번째는 New일때 인데요 스레드 객체가 생성되었지만 아직 시작되지 않은 상태입니다. start() 메소드가 호출되 면 Runnable상태로 들어가는데요 실행 대기열에 등록되고 실행 가능한 상태입니다. 이후에는 JVM의 스케쥴러에 의해 CPU를 할당 받으면 Running 상태로 들어갑니다. 실행중 잠시 멈춰야하는 상황이 발생하면 Blocked 상태가 됩니다. 스레드의 실행이 끝나면 Terminated 상태가 됩니다.스레드 풀의 스레드들이 작업을 처리하.. 2024. 12. 25.
[나혼자공부] 3주차 복습-2 으아ㅏㅏ 너무 많아ㅏㅏ 공부할껀 왜 매일매일 생기고 왜이렇게 많은걸까 그래서 행복해!오늘의 공부 내용스트링의 각 캐릭터를 어떻게 개별적으로 접근할 수 있나내답변: String은 객 문자를 char[]로 저장하므로 각 문자에 개별적으로 접근할 수 있습니다. java에서는 charAt() 메서드를 제공하고있고 이 메소드를 사용해서 각 문자를 가져올 수 있습니다.  java9 이후로는 byte[]배열 저장으로 변경하였다. new String으로 생성된 객체와 스트링 리터럴의 비교 시, equals와 == 연산자의 동작 차이내답변: new String으로 생성된 객체는 스트링 풀에 있는 객체 여부 상관없이 Heap 영역에 새로운 객체를 생성하므로 객체의 참조 을 비교하는 == 연산자 사용시는 false가 나오고.. 2024. 12. 20.
반응형