목록JAVA (23)
forest_moon
HashMap이란? HashMap은 Map인터페이스에 속해있는 컬렉션. 다른 특징으로는 HashTable과 유사하지만 동기화가 되지 않고 Null값도 저장이 가능합니다 Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있고 Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다. 여기서 키와 값은 모두 객체입니다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없습니다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치됩니다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보입니다. 그림과 같이 HashMap은 내부에 '키'와 '값'을 저..
그 놈 의 객 체 지 향 이 란 ? 하하하하하 가장 많이 들어본 단어 인거 같다 또 면접에서 꼬리 물리면서 제일 진땀을 빼게 했던 단어이다. 객체 지향(Object oriented) 프로그래밍이란? 우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다. 객체는 클래스라는 틀에서 생겨난 실체(instance)이다. 따라서 객체 지향 프로그램은 객체와 객체 간의 연결로 되어 있으며 각각의 객체 안에 자료구조와 알고리즘이 들어있는 것이다. 객체 지향(OOP)의 개념과 특징 객체 지향 프로그래밍 이란, 많은 객체(Objcet)들이 모여서 상호 협력하면서 ..
가비지 컬렉션 간단요약 1. 불필요한(유효하지 않은 메모리) 메모리 영역을 수집한다. 2. 수집된 가비지 데이터 메모리를 알아서 정리해준다. 3. JVM의 가비지컬렉터가 알아서 정리해주지만 동작하는 동안에는 다른 동작을 하지 않기 때문에 오버헤드가 발생한다. 가비지컬렉션(Garbage Collection)이란? 가비지 컬렉션은 GC라고도 불린다. 가비지컬렉션이란 자바의 메모리를 관리하는 방법중의 하나이다. JVM의 Heap 영역안에서 동적으로 할당됐던 메모리 영역 중 필요가 없는 메모리 영역을 주기적으로 삭제하는 프로세스를 의미한다. C 나 C++에서는 이러한 가비지 컬렉션이 없이 개발자가 수동으로 메모리를 할당하고 해제해줘야 한다..ㄷㄷ 반대로 Java는 JVM에 탑재되어 있는 가비지 컬렉터가 메모리 ..
검색을 통해 찾아본 내용을 정리하면서 기록하기. DispatcherServlet 란? 디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있다.이러한 단어를 포함하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있다. Spring MVC 패턴에서 기본적으로 사용하는 Servlet으로, 클라이언트의 요청이 있을 시 가장 앞단에서 요청을 가로채어(Front Controller) 요청에 매핑되는 Controller에 작업을 전달하고 비지니스 로직 처리 후 해당 결과 View를 클라이언트에 전달하는 역할이다. DispatcherServlet 흐름도 클라이언트의 요청을 Distpat..
ORM 이란 !? ORM은 Object Relational Mapping 즉, 객체-관계 매핑의 줄임말이다. 객체-관계 매핑을 풀어서 설명하자면 우리가 OOP(Object Oriented Programming)에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB(Relational DataBase)에서 쓰이는 데이터인 테이블 자동으로 매핑(연결)하는 것을 의미한다. 그러나 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 불일치가 발생하는데, 이를 ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결한다. 따라서 ORM을 이용하면 따로 SQL문을 짤 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 된다. ORM의 장단점 장점 1. ..
모의 면접을 하면서이 문제에 대해서 질문을 받았는데 대답을 하지 못했다 내가 Spring Framework를 사용하면서 이걸 왜 몰랐을까 라는 생각을 하면서 한번 더 정리하기로 했다. 프레임워크(Framework)란 ? 프레임 워크가 나오기 전에는, 개발자들은 언어를 이용해 복잡한 방식을 통해 프로젝트를 만들었다. JAVA를 사용한 프로젝트는 EJB(Enterprise Java Beans) 방식을 많이 썼는데, 이 방식은 너무 복잡하고 어려워서 개발을 한다해도 실패 확률이 높았고 유지보수도 매우 어려웠다고 한다. 또 개발을 하면서 프로젝트마다 공통적으로 구현되는 부분들(ex. 보안, 로그, 트랜잭션 등)이 존재한다. 프로젝트마다 공통적인 부분을 매번 구현한다는 건 상당히 비효율적이였다. 개발자는 비즈니스..
JPA(JAVA Persistence API) 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크 이다 ! JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. ORM(Object-Relational Mapping) 우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면된다. 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비..