study 56

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

Bean 객체와 Bean 생명주기에 대해 설명해주세요.더보기-> Bean 객체란 스프링 컨테이너에서 관리되는 객체로, @Component, @Service, @Repository, @Controller 등으로 등록됩니다.Bean 생명주기는 IOC (Inversion of Control) 컨테이너에 의해 관리되는 객체의 생성부터 소멸까지의 과정을 말합니다. Bean 생명주기객체 생성 (@Component 등으로 등록)의존성 주입 (@Autowired 등으로 주입)초기화 (@PostConstruct 사용 가능)사용소멸 전 작업 (@PreDestroy 사용 가능)Spring에서 Bean을 싱글톤으로 관리하는 이유는 무엇인가요?-> 객체 생성을 최소화해 메모리 사용을 줄이고, 성능을 최적화하기 위함입니다.Bea..

study/CS 2025.03.05

Java에서 return문 누락으로 발생하는 오류와 해결 방법

문제 발생 배경Java로 코딩 테스트 문제를 풀다 보니, missing return statement 오류가 발생했다.오류의 원인과 해결 방법에 대해 알아본다. 문제 설명프로그래머스의 "나머지가 1이 되는 수 찾기" 문제를 풀고 있었다.이 문제는 주어진 자연수 n에 대해 n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x의 값을 반환하는 문제이다.처음 코드 작성 시, 다음과 같이 return -1; 을 사용하지 않고 문제를 풀었다.class Solution { public int solution(int n) { for (int x = 2; x 이 코드에서 return -1;을 사용하지 않아서 missing return statement 오류가 발생했다. 문제 분석메서드의 반..

study/Java 2025.03.05

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

Java의 직렬화와 역직렬화에 대해 설명해주세요.더보기-> 직렬화는 객체를 바이트 형태로 변환하여 저장하거나 네트워크로 전송할 수 있게 만드는 과정이고,역직렬화는 바이트 데이터를 다시 객체로 변환하는 과정입니다. 직렬화가 필요한 이유는 무엇인가요?-> 객체를 저장하거나 네트워크를 통해 전송하기 위해 필요합니다.Java에서 직렬화와 역직렬화를 어떻게 구현하나요?-> ObjectOutputStream과 ObjectInputStream을 사용하여 구현합니다.직렬화를 위해 어떤 인터페이스를 구현해야 하나요?-> Serializable 인터페이스를 구현해야 합니다.직렬화에서 transient 키워드는 어떤 역할을 하나요?-> transient 키워드를 붙인 필드는 직렬화에서 제외됩니다.역직렬화 시 예외가 발생할 ..

study/CS 2025.03.04

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

Java의 제네릭에 대해 설명해주세요.더보기-> 제네릭은 타입을 매개변수로 사용할 수 있게 하여 코드의 재사용성과 타입 안정성을 높이는 기능입니다.예를 들어, List는 String 타입만 저장하도록 제한할 수 있습니다.제네릭을 사용하면 어떤 장점이 있나요?→ 타입 안정성을 확보하고, 불필요한 형변환을 줄여 코드의 가독성을 높일 수 있습니다.제네릭을 사용하지 않으면 어떤 문제가 발생할까요?->타입 안정성이 보장되지 않아 형 변환 오류가 발생할 수 있고, 코드의 가독성과 재사용성이 떨어집니다.제네릭은 컴파일 타임에만 적용된다고 하는데, 런타임에는 어떤 영향을 미칠까요?-> 런타임에는 제네릭 정보가 사라지고 Object로 처리됩니다. 자바의 동시성 문제와 멀티쓰레드에 대해 설명하고 해결방법을 말씀해주세요.더..

study/CS 2025.02.26

CS 면접 예상 질문 - Java(1)

싱글톤 패턴이란 무엇인가요?더보기-> 하나의 클래스에서 단 하나의 객체만 생성되도록 보장하는 디자인 패턴입니다. 주로 전역 상태 관리나 자원 절약을 위해 사용됩니다. JVM이 무엇인가요?더보기-> Java Virtual Machine의 약자로, 자바 바이트코드를 실행하는 가상 머신입니다. 자바 프로그램이 플랫폼 독립적으로 실행될 수 있도록 해줍니다. 자바 메모리 영역에 대해서 설명해주세요.더보기-> JVM은 메소드 영역, 힙 영역, 스택 영역, PC 레지스터, 네이티브 메소드 스택으로 구성됩니다.클래스 정보와 메서드는 메소드 영역, 객체는 힙, 지역 변수와 호출 정보는 스택에 저장됩니다. 오버로딩과 오버라이딩의 차이점을 설명해주세요.더보기-> 오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것이고, 오..

study/CS 2025.02.25

[프로그래머스/Java] 짝수의 합

문제 나의 풀이class Solution { public int solution(int n) { int answer = n * (n + 2) / 4; return answer; }} 처음에는 짝수 n이 주어지는 것으로 잘못 이해했다.그래서 문제 조건에 맞게 코드를 다시 작성하려 했지만, 쉽게 떠오르지 않았다.   정답class Solution { public int solution(int n) { int answer = 0; for(int i=2; i 사실, for문을 사용하여 2부터 더해주면 되는 간단한 문제였다.  그리고 for문에 대한 추가 학습이 필요하다고 느껴 관련 내용을 공부했다. -> [for문 글 링크]

study/Algorithm 2025.02.20