Java

· Java
프로그램을 개발 하다 보면 유효하지 않은 메모리인 가비지(Garbage)가 발생한다.C 언어를 이용하면 free() 라는 함수를 사용해서 직접 메모리를 해제해주어야 함JVM의 가비지 컬렉터가 불필요한 메모리를 알아서 정리함null 선언은 함Minor GC와 Major GCJVM의 Heap 영역은 처음 설계될 때 2 가지를 전제로 설계됨대부분의 객체는 금방 접근 불가능한 상태가 된다오랟된 객체에서 새로운 객체로의 참조는 아주 적게 존재한다즉 객체는 대부분 일회성이며, 메모리에 오랫동안 남아있는 경우는 드물다는 것객체의 생존 기간에 따라 물리적인 Heap 영역을 나누게 되었고 Young, Old 2가지 영역으로 설계됨Young 영역새롭게 생성된 객체가 할당되는 영역(Allocation)대부분의 객체가 금방 ..
· Java
📌 스프링 auto-assembles 빈을 위한 방법들을 말하라. 스프링에서 빈을 자동으로 조립하기 위한 여러 가지 방법이 있다. [ @ComponentScan ] 지정된 패키지 이하에서 @Component 어노테이션이 붙은 클래스를 찾아 빈으로 등록한다. @SpringBootApplication @ComponentScan("com.example") public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } [ @Autowired ] 필드, 생성자, 메서드에 사용되어 해당 타입의 빈을 자동으로 주입한다. [ @Component ] 해당 클래스를..
· Java
📌 스프링 사용의 장점은 무엇인가? 스프링(Spring)은 Java 기반의 오픈 소스 프레임워크로, 다양한 기능을 제공하여 개발자들이 효과적으로 엔터프라이즈급 애플리케이션을 개발할 수 있도록 도와준다. [ 경량화 ] 스프링은 경량화된 프레임워크로서 필요한 부분만 선택적으로 사용할 수 있다. 필요한 모듈만 사용하여 애플리케이션을 더 가볍게 만들 수 있다. [ 의존성 주입 ] 스프링은 의존성 주입을 통해 객체 간의 결합도를 낮춘다. 이는 유지보수성을 높이고 테스트 용이성을 제공하며 코드 재사용성을 향상시킨다. [ 풍부한 생태계 ] 스프링은 다양한 서드파티 라이브러리 및 프로젝트와 통합이 잘 되어 있어 다양한 기능을 지원하고 개발 생산성을 향상시킨다. 스프링이란? [Spring] Spring이란? 개발자들의 ..
· Java
📌 GET과 POST요청의 차이를 말하라. [ GET ] 데이터 전송 데이터는 URL의 쿼리 매개변수로 전송된다. URL에 노출되므로 민감한 정보를 전달하기에 적합하지 않다. 캐싱 브라우저에서 GET 요청이 캐시 될 수 있다. [ POST ] 데이터 전송 데이터는 HTTP 요청의 본문(body)에 포함되어 전송된다. URL에 노출되지 않으므로 더 많은 양의 데이터와 민감한 정보를 보내기에 적합하다. 캐싱 브라우저에서 POST 요청이 캐시되지 않는다. 어떤 요청 메서드를 사용할지는 요청의 목적과 보안 상의 고려사항 등에 따라 결정되며, 일반적으로 GET은 리소스를 가져오는 데 사용되고, POST는 리소스를 생성할 때 사용된다. 📌 어떻게 도메인 간의 요청이 작동하나? 도메인 간의 요청(Cross-Origi..
· Java
📌 301과 302 상태 코드의 의미와 차이는 무엇인가? 301과 302는 HTTP 상태 코드(Status Code)중 리다이렉션(Redirection)을 나타내는 코드이다. 이 두 코드는 클라이언트(브라우저 등)에게 요청한 리소스가 다른 위치에 있음을 알려주며, 클라이언트는 해당 위치로 자동으로 이동하여 리소스를 가져온다. [ 301 (Moved Permanently: 영구 이동) ] 요청한 리소스가 영구적으로 다른 위치로 이동했음을 나타낸다. 클라이언트는 이후에 해당 리소스를 새로운 위치로 요청해야 한다. 브라우저는 캐시를 업데이트하고 검색 엔진은 새로운 위치를 기억하여 인덱스를 업데이트한다. [ 302 (Found: 찾음 , Moved Temporarily: 일시적 이동) ] 요청한 리소스가 일시적..
· Java
📌 throw와 throws의 차이는 무엇인가? [ throw ] 예외를 명시적으로 발생시키는 데 사용한다. 예외가 발생하면 해당 예외 객체가 생성되고, 프로그램의 실행 흐름이 해당 예외를 처리할 수 있는 부분으로 전달된다. 일반적으로 메서드나 블록 내에서 예외 조건이 발생할 때 사용한다. throw new Exception("에러 발생~"); [ throws ] 메서드 선언부에 사용되며, 해당 메서드가 어떤 종류의 예외를 던질 수 있는지를 나타낸다. 메서드가 어떤 예외를 던질지 미리 선언함으로써, 메서드를 호출하는 클라이언트는 해당 예외에 대한 처리를 해야 한다. public void something() throws IOException { ... } throw는 예외를 발생시키는 데 사용하고, th..
· Java
📌 쿠키를 사용할 수 없을 때 세션을 대신 사용할 수 있을까? 세션은 서버 측에서 관리되며, 사용자의 브라우저에 저장되는 쿠키와 달리 사용자의 정보를 서버에 저장한다. 이는 쿠키가 비활성화되거나 사용자가 쿠키를 거부하는 경우에도 사용자의 세션을 유지할 수 있게 한다. 세션 ID는 일반적으로 쿠키를 통해 사용자의 브라우저에 전송되지만, 쿠키를 사용할 수 없는 경우에는 URL 매개변수나 폼 데이터, 세션 스토리지, 로컬 스토리지 등을 이용하여 보관할 수 있다. 📌 스프링 MVC와 struts의 차이는 무엇인가? Spring MVC와 Struts 모두 Java 기반의 웹 애플리케이션 개발을 지원하는 프레임워크이지만 몇 가지 차이점이 있다. [ 아키텍처와 설계 ] Spring MVC Spring 프레임워크의 일..
· Java
📌 JSP와 Servlet의 차이점은 무엇인가? JavaServer pages(JSP)와 Servlet은 모두 Java를 기반으로 하는 웹 애플리케이션 개발을 위한 기술이지만 몇 가지 차이점이 있다. [ 문법 및 구조 ] JSP HTML 안에 Java 코드를 삽입하는 방식으로 동적 웹 페이지를 생성한다. Servlet Java 코드 안에 HTML 코드를 삽입하는 방식으로 동적 웹 페이지를 생성한다. [ 유지보수 및 디자인 ] JSP 코드가 섞이기 쉽기 때문에 디자인과 비즈니스 로직을 분리하기 어렵다. Servlet 코드의 구조화와 분리가 더 쉽다. [ 방식 ] JSP 내부적으로 서블릿으로 변환되어 실행된다. Servlet 자바 클래스로 직접 작성되어 실행된다. 일반적으로 JSP는 프론트엔드와 백엔드의 통..
개발의 밀도
'Java' 카테고리의 글 목록