study 56

List

1.  리스트 추상화1 - 인터페이스 도입 다형성, OCP가 자료 구조에 어떻게 적용될까?  예를 들어, 그림과 같이MyArrayList 와 MyLinkedList 의 공통 기능 -> MyList 인터페이스로 뽑아서 추상화하면 다형성을 활용한 다양한 이점이 있다. MyList 코드더보기public interface MyList { int size(); void add(E e); void add(int index, E e); E get(int index); E set(int index, E element); E remove(int index); int indexOf(E o);} MyArrayList 코드더보기public class MyArrayList implement..

study/Java 2025.04.05

LinkedList

노드와 연결 배열 리스트의 단점배열 리스트는 내부에 배열을 사용해서 데이터를 보관하고 관리한다.배열은 필요한 배열의 크기를 미리 확보해야 한다. -> 공간 낭비 발생앞이나 중간에 데이터를 추가하거나 삭제하는 경우 -> 데이터를 이동으로 인한 성능 저하 발생 노드와 연결(노드를 만들고 각 노드를 서로 연결)낭비되는 메모리 x, 앞이나 중간에 데이터를 추가, 삭제할 때 효율적 노드에 데이터 추가 코드 구현더보기public class Node { Object item; Node next; public Node(Object item) { this.item = item; }}모든 노드 탐색하기더보기Node x = first;while (x != null) { Syst..

study/Java 2025.04.04

ArrayList

배열의 특징1 - 배열과 인덱스배열의 인덱스배열에서 인덱스를 사용하면 데이터가 아무리 많아도 한 번의 연산으로 자료의 위치를 빠르게 찾을 수 있다. 배열의 검색 : 배열에 들어있는 데이터를 찾는 것배열의 검색 시에는 인덱스를 사용해서 한 번에 찾을 수 없다.배열 안의 데이터를 하나하나 확인해야 한다. -> 배열의 크기가 n이면 연산도 n만큼 필요하다. 빅오(O) 표기법빅오(O) 표기법 : 알고리즘의 성능을 분석할 때 사용하는 수학적 표현 방식이다.정확한 실행 시간 계산이 아니라, 성능의 변화 추세를 이해하는 것이다.추세 비교가 목적이므로 상수는 크게 의미가 없다. 따라서, O(n+2), O(n/2) -> O(n)으로 표시한다.보통 최악의 상황을 가정해서 표기한다.O(1) - 상수 시간입력 데이터의 크기에..

study/Java 2025.04.03

Generic

제네릭이 필요한 이유담을 곳이 필요할 때에는 타입별로 클래스를 만들어 줘야 함↓Object를 통해 다형성을 사용해서 해결하기(코드 재사용 O, 타입 안전성 X)장점 : 코드의 중복 제거, 코드 재사용 가능단점1 : 타입 안전성 문제 발생단점2 : (Integer)과 같은 타입 캐스팅 코드가 필요함 (∵ Integer = Object는 자식은 부모를 담을 수 없으므로 성립하지 않음)↓제네릭 적용(코드 재사용 O, 타입 안전성 O)package generic.ex1;public class GenericBox { private T value; public void set(T value) { this.value = value; } public T get() { re..

study/Java 2025.04.01

CS 면접 예상 질문 - 네트워크(2)

HTTP의 특징을 설명해주세요.더보기HTTP는 상태를 저장하지 않는(stateless) 프로토콜로, 요청과 응답으로 구성되며, TCP 기반으로 동작하는 비연결성 프로토콜입니다.HTTP와 HTTPS의 차이점은 무엇인가요?-> HTTPS는 SSL/TLS 암호화를 사용하여 보안을 강화한 HTTP입니다.HTTP는 왜 상태를 저장하지 않나요?-> HTTP는 단순한 요청-응답 모델을 따르며, 서버의 부담을 줄이기 위해 상태를 유지하지 않습니다.HTTP 요청 방식에는 어떤 것들이 있나요?-> GET, POST, PUT, DELETE, PATCH 등의 메서드가 있습니다.HTTP 1.1과 HTTP 2.0의 차이는 무엇인가요?-> HTTP 2.0은 멀티플렉싱을 지원하여 여러 요청을 동시에 처리할 수 있습니다.쿠키와 세션은..

study/CS 2025.03.25

CS 면접 예상 질문 - 네트워크(1)

www.google.com 도메인을 브라우저에 입력했을 때 일어나는 일을 순차적으로 설명해주세요.더보기브라우저는 DNS 요청을 통해 IP 주소를 받아오고, TCP 연결 후 HTTP 요청을 서버에 보내며, 서버가 응답을 반환합니다.DNS란 무엇인가요?-> DNS는 도메인 이름을 IP 주소로 변환하는 시스템입니다.브라우저가 IP 주소를 찾는 과정은 어떻게 되나요?-> DNS를 통해 도메인 이름을 IP 주소로 변환합니다.HTTP 요청에서 'GET'과 'POST'의 차이는 무엇인가요?-> GET은 데이터를 요청하고, POST는 데이터를 서버로 전송합니다.서버가 응답을 반환하는 과정은 무엇인가요?-> 서버는 클라이언트의 요청을 처리하고, HTTP 응답을 반환합니다.웹 페이지를 어떻게 렌더링하나요?-> HTML, ..

study/CS 2025.03.18

CS 면접 예상 질문 - Spring(3)

관점지향 프로그래밍(AOP, Aspect Oriented Programming)은 무엇이고, 언제 사용할 수 있을까요?더보기AOP는 공통된 기능(로깅, 트랜잭션, 보안 등)을 핵심 비즈니스 로직과 분리하는 프로그래밍 기법입니다.반복적으로 사용되는 공통 기능(횡단 관심사)을 분리하여 코드의 중복을 줄이고, 핵심 비즈니스 로직을 더 명확하게 유지할 때 사용할 수 있습니다.AOP의 주요 개념은 무엇인가요?→ Aspect, Advice, Pointcut, JoinPoint, Weaving 등이 있습니다.AOP의 주요 활용 사례는 무엇인가요?→ 로깅, 트랜잭션 관리, 보안, 성능 모니터링 등에 사용됩니다.AOP를 적용하는 방법은 무엇인가요?→ @Aspect와 @Around, @Before, @After 등의 어노..

study/CS 2025.03.12

[프로그래머스/Java] x만큼 간격이 있는 n개의 숫자

핵심 정리정수형 자료형을 크기별로 나열하면, byte int의 표현 범위 : -2,147,483,648  ~ 2,147,483,647자동 형변환 시 데이터 손실이 없어야 하므로, 큰 크기의 자료형 -> 작은 크기의 자료형 만 가능연산 전에 int인 x를 long으로 형변환 해줘야 한다.(명시적 형변환 필요) 문제 나의 풀이class Solution { public static int[] solution(int x, int n) { int[] result = new int[n]; for (int i = 0; i  틀린 이유문제의 제한조건에 따라 풀면 계산 결과가 자바의 int의 표현 범위를 넘어가는 경우가 발생한다.따라서, 풀이에 int 대신 long 타입을 사..

study/Algorithm 2025.03.12

CS 면접 예상 질문 - Spring(2)

Spring Batch에 대해 설명해주세요.더보기-> Spring Batch는 대량의 데이터를 효율적으로 처리하는 프레임워크로, Job과 Step을 기반으로 구성되며 트랜잭션 관리, 병렬 처리, 재시작 기능 등을 제공합니다.Spring Batch의 주요 구성 요소는 무엇인가요?→ Job, Step, JobLauncher, JobRepository, ItemReader, ItemProcessor, ItemWriter 등이 있습니다.Job과 Step의 차이점은 무엇인가요?→ Job은 배치 작업의 전체 흐름을 관리하고, Step은 개별적인 처리 단계를 담당합니다.Spring Batch에서 트랜잭션 관리는 어떻게 이루어지나요?→ 각 Step에서 Chunk 기반 처리 또는 Tasklet 기반으로 트랜잭션을 관리합..

study/CS 2025.03.11