목록백엔드/Java (10)
soowanlog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/caAW8r/btsGizAi1sR/5axhdjFCUUqb3Z5Wa1tqWK/img.jpg)
JSP란? SP의 동작방식 Spring boot의 JSP 설정 - dependencis 추가 - JSP 지원 설정 - JSP 파일 추가 예제 JSP란? JavaServer Pages의 약자로 Java를 기반으로 하는 동적 웹 페이지를 생성하기 위한 Java 웹 개발 기술 중 하나입니다. JSP는 HTML 내부에 Java 코드가 있기 때문에 코드를 읽고 쓰기에 편리합니다. JSP의 동작방식 먼저 Client가 URI를 통해 요청을 보내면 JSP Container로 전송합니다. JSP Container는 .jsp 파일을 Java Servlet 파일로 변환합니다. Servlet 파일은 일반적인 Java 파일처럼 동작하며 서버에서 실행됩니다. Servlet은 .jsp 파일에 포함된 Java 코드를 실행하여 작업..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IHkXk/btsGhWJpax2/UKGjHIQmK3T45s9NakIE7K/img.jpg)
Servlet이란? Servlet의 동작방식 ※ Servlet Container Servlet의 생명주기 - init() - service() - destroy() Servlet이란? Java를 사용하여 웹을 만들기 위해 필요한 기술로 Client의 요처에 대한 결과를 다시 전송해주는 프로그램입니다. Servlet은 Java 코드 내부에 HTML 코드가 있기 때문에 코드를 읽고 쓰기가 불편합니다. Servlet의 동작방식 먼저 Client가 URI를 통해 요청을 보내면 Servlet Container로 전송합니다. 요청을 전송받은 Servlet Container는 요청을 분석하여 해당 요청을 처리할 Servlet을 결정합니다. 이 Servlet들은 javax.servlet.http.HttpServlet을..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nRkzD/btsFGL8KGfz/YTmDSCCUuMWg6IbkkgdrO1/img.png)
JVM이란? ※ Java compiler JVM 구성요소 - Class Loader - Execution ※ JIT compiler - Runtime Data Area Runtime Data Area ※ 프로세스 ※ 스레드 - PC Register - JVM Stacks - Native Method Stacks ※ 커널(Kernel) - Heap - Method Area ※ Runtime Constant Pool JVM이란? Java Virtual Machine의 줄임말로 Java를 OS에 종속받지 않고 실행하기 위한 가상의 기계(컴퓨터)입니다. Java 소스코드(*.java)는 OS가 인식을 하지 못하므로 기계어로 컴파일해줘야 합니다. 하지만 Java는 JVM을 거쳐서 OS에 도달하기 때문에 바로 기계..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wbMHX/btsFI5tjudD/WH9sQMHki6FJid9fab0R01/img.png)
Garbage Collector(GC)란? JVM heap 영역 ※ Perm 영역이 삭제된 이유 - Perm 영역 - Metaspace - Minor GC - Major GC Garbage Collector(GC)란? GC는 JVM의 heap 영역에 할당한 메모리 중 사용하지 않는 메모리를 자동으로 수거하는 기능을 말합니다. C/C++ 같은 언어는 메모리를 할당하고 직접 해제해야 했지만, Java는 GC를 이용하여 개발자들이 메모리 관리를 비교적 신경 쓰지 않아도 됩니다. JVM heap 영역 GC의 동작 방법을 이해하기 앞서 JVM의 heap 영역 구조를 이해해야 합니다. heap 영역은 크게 Young 영역과 Old 영역으로 메모리를 구분합니다. 영역 설명 New/Young 영역 - 객체가 생성되자마..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Vp0jy/btsFAB0UzVK/VGqBjmhVnmuClRXbLX7nAK/img.jpg)
JDK 1.0 JDK 1.1 J2SE 1.2 J2SE 1.3 J2SE 1.4 J2SE 5 Java SE 6 Java SE 7 (LTS) Java SE 8 (LTS) Java SE 9 Java SE 10 Java SE 11 (LTS) Java SE 12 Java SE 13 Java SE 14 Java SE 15 Java SE 16 Java SE 17 (LTS) Java SE 18 Java SE 19 Java SE 20 JDK 1.0 - 1996. 01 공개 - 발표 이전에 불린 이름은 Oak JDK 1.1 - 1997. 02 공개 - JDBC, Inner Class, Java Beans, RMI, Reflection, Calendar, Unicode 지원 등이 추가 - Beans 규약 1. 기본 생성자가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/T3PqR/btsFDE9JWeO/P9VXUMp1RJo6xHVE0edr2K/img.jpg)
Java란? Java의 특징 - 객체지향 언어 - 높은 이식성 - 인터프리터 언어 - 메모리 자동 관리 - 동적 로딩 - 느린 실행 속도 ※ JVM Java 버전 별 특징 Java란? Java는 널리 사용되는 객체 지향 프로그래밍 언어로 다양한 디바이스에서 실행됩니다. 이름이 비슷한 Javascript와 다르다는 것도 이해해야 합니다. Javascript는 컴파일할 필요가 없지만 Java코드는 컴파일해야 하고 Javascript는 웹브라우저에서만 실행되지만 Java는 어디에서나 실행될 수 있습니다. 개발에 사용되는 여러 언어들이 놀라운 속도로 시장에 출시되면서 기존의 언어들을 대체하고 있습니다. 이런 지속적인 전환을 고려할 때 Java의 수명은 인상적입니다. Java의 특징 - 객체지향 언어 : 객체를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dO55B6/btsFAghvN4R/ZmXp7G5LhSWltomFVMMWe0/img.png)
JDBC란? JDBC 동작 흐름 ※ JDBC 드라이버 ※ IT업체에서의 벤더 JDBC API 사용 흐름 - JDBC 드라이버 로딩 - Connection 객체 생성 - Statement 객체 생성 - Query 실행 - ResultSet 객체로부터 데이터 조회 - ResultSet, Statement, Connection 객체 close Connection Pool ※ Connection 객체 생성 과정 JDBC란? JDBC(Java Database Connectivity)는 Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 사용할 수 있도록 하는 Java api입니다. JDBC는 다음 3가지 기능을 표준 인터페이스로 정의하여 제공합니..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJCg4F/btsFA8cdJO8/EW43OkcA8D2sGSpyYv4B1K/img.jpg)
Persistence란? Persistence Framework란? Persistence란? 영속성으로 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말합니다. 영속성을 가지지 않는 데이터는 단지 메모리에 존재해 프로그램이 종료되면 없어집니다. 데이터가 영속성을 갖기 위해선 파일 시스템, 데이터베이스 등을 활용해 구현하면 됩니다. Persistence Framework란? 데이터의 CRUD를 다루는 클래스 및 설정 파일들의 집합이고 간단한 작업으로 데이터베이스와 연동되는 시스템을 개발하고 안정적인 구동을 보장하므로 JDBC 프로그래밍의 복잡함과 번거로움을 해소해 줄 수 있습니다. Persistence Framework의 종류로는 SQL문으로 직접 DB데이터를 다루는 SQL 맵퍼와 ORM이 있습니다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/E8tRd/btsFywEQ6RW/z4Tzj4EPGd3fLlYcGHDRAK/img.png)
OOP란? ※ 프로그램 패러다임 OOP의 특징 1. 캡슐화(Encapsulation) 2. 추상화(Abstraction) 3. 다형성(Polymorphism) 4. 상속성(Inheritance) OOP의 설계 원칙(SOLID) - SRP(단일 책임의 원칙) - OCP(개방 폐쇄 원칙) - LSP(리스코프 치환 원칙) - ISP(인터페이스 분리 원칙) - DIP(의존 역전 원칙) OOP(Object-Oriented Programming)이란? 객체 지향 프로그래밍으로 컴퓨터 프로그램을 명령어의 목록으로 보는 (C언어와 같은 절차 지향 프로그래밍) 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 상호작용으로 프로그램 로직을 구성하는 프로그래밍 패러다임입니다. ※ 프로그래밍 패러다임(Programmin Pa..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dlwXFm/btsFy9o1KpW/VwCi2I6okZrIEItVBbsbD0/img.jpg)
ORM이란? 객체-관계형 데이터베이스 간의 불일치 ORM의 장점 ORM(Object Relational Mapping)이란? 객체와 관계형 데이터베이스 매핑의 줄임말입니다. 즉, 우리가 OOP에서 쓰는 객체라는 개념을 구현한 클래스와 RDB에서 쓰이는 데이터는 테이블을 매핑(연결)하는 것을 의미합니다. ORM을 이용하면 SQL Query가 아닌 직관적인 코드로서 데이터를 조작할 수 있습니다. // SQL Query @Select(""" SELECT * FROM member """) List findMember(); // ORM memberRepository.findAll(); 객체-관계형 데이터베이스 간의 불일치 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 아래와 같은..