KEEP GOING

[JAVA] 웹(WEB) CS 정리 본문

language/java

[JAVA] 웹(WEB) CS 정리

jmHan 2022. 5. 24. 16:03
반응형

1. JAVA
JVM 위에서만 실행하므로 운영체제에 독립적이다.
객체지향의 특징인 상속, 추상화, 다형성, 캡슐화의 특징을 갖는다.
Garbage Collector가 자동적으로 메모리를 관리한다.
멀티 쓰레드를 지원한다.

2. OOP(객체지향 프로그래밍)
모든 데이터를 객체로 취급하며 객체와 객체간의 상호작용으로 프로그램이 동작한다.
코드의 재사용성
'상속' 기능 제공

3. Servlet, JSP
Servlet - Container가 이해하도록 순수 자바코드로만 이루어진 것. (HTML in JAVA)
JSP - HTML 위에 JAVA 코드를 블록화하여 삽입한 것. (JAVA in HTML)

4. JDBC
Java Data Base Connection의 약자로 JAVA로 데이터베이스에 접근할 수 있는 프로그래밍

5. GET과 POST 방식
GET (READ)

- 조회 기능 (SELECT) 

- FORM 태그에서 ACTION을 통해 데이터를 전송하거나 주소창에 이름=값 형태(쿼리스트링)로 전송 가능 

- 하지만 FORM 태그에서 GET 방식은 서버 처리가 지연될 경우, 요청이 중복 처리되는 문제가 있어 사용하지 않음.

- 주소에 쿼리스트링이 그대로 보여 보안성이 떨어짐
- 전송할 데이터 용량에 제한 있음
- 주로 웹브라우저가 웹서버에 데이터를 요청

 

POST (CREATE)

- 삽입, 삭제, 수정 기능 (INSERT, DELETE, UPDATE)

- 전송하는 데이터의 정보가 URL에 노출되지 않아 GET 방식에 비해 보안성이 높다. 그래서 PASSWORD 같은 중요 정보를 전송할 때 사용한다.

- FORM 태그에서 ACTION을 통해 데이터를 전송함 

- GET 방식보다 느리다
- 대용량 데이터를 보낼 때 사용.
- 주로 웹 브라우저가 웹서버에 데이터를 전달할 때 사용. 

6. Abstract, Interface
Abstract
- 추상 메소드를 하나 이상 가진 클래스
- 자신의 생성자로 객체 생성 불가능

Interface
- 추상 메소드와 상수만을 갖는다
- Implements 키워드 사용
- Extends는 하나의 클래스만 상속 가능하나 Implements는 다중 상속이 가능하다.

공통점 및 차이점
- Abstract는 일반 메소드를 생성 가능하나, Interface는 메소드 선언만 가능하다.
- 둘다 공통적으로 하위 클래스에서 확장/구현해야 한다.
- 따라서 new 연산자로 인스턴스 생성 불가
- 프로토타입만 있는 메소드를 가진다.

7. Call by value, Call by reference
Call by value - 값을 복사하여 처리하는 방식.
메소드 내에서의 처리 결과가 메소드 밖에 영향을 미치지 않는다.
Call by reference - 매개변수에 원래 주소의 값을 저장하는 방식.
클래스 객체를 매개변수로 전달

8. Static

9. Thread
Thread - 프로세스 내에서 동시에 실행되는 독립적인 실행단위
Process - 운영체제에서 실행 중인 하나의 프로그램(하나 이상의 쓰레드를 갖는다)

Thread의 장점
- 적은 메모리 사용
- 빠른 프로세스 생성

Thread 단점
- 교착 상태에 빠질 수 있다
* 교착 상태 : 하나 이상의 프로세스가 수행할 수 없는 특정 시간을 기다리고 있는 상태


10. UDP/TCP
TCP(Transmission Control Protocol)
- 연결형 서비스 제공
- 높은 신뢰성 보장
- 혼잡제어, 데이터 흐름 제어

UDP(User Datagram Protocol)
- 비연결성 서비스 제공
- 신뢰성이 낮음
- 데이터 전송 순서가 바뀔 수 있음
- TCP보다 전송 속도가 빠름

11. Database의 Index란?
데이터베이스 내 테이블의 동작 속도를 높여주는 자료구조
테이블 내 1개 혹은 여러 개의 컬럼으로 인덱스 생성 가능
- 효율적인 동작 순서 제공
- 동작 속도 개선

12. 디자인패턴
소프트웨어 설계시 계속해서 발생하는 고질적인 문제에 대해 미리 만들어 둔 해결책

싱글톤 패턴(Singleton Pattern)
- 객체를 하나만 생성하여, 이미 생성된 객체만을 참조하도록 하는 패턴

13. Mybatis
- 프로그램 코드와 SQL 쿼리를 분리
- 코드의 간결성 및 유지보수성 보장

14. JPA
- JAVA에서 ORM 기술 표준으로 사용하는 인터페이스
- 자바 어플리케이션에서 RDBMS를 사용하는 방식을 정의한 인터페이스
- 인터페이스이기에 Hibernate, OpenJPA 등이 JPA를 구현함

15. Maven
- 빌드 도구로서 pom.xml 파일을 통해 프로젝트 관리 수행
- 프로젝트의 라이프 사이클 관리
- xml 기반으로 작성
- pom.xml에 라이브러리 선언시 자동으로 해당 프로젝트를 불러와 편리하다.

16. Gradle
- Groovy 기반의 빌드 도구
- Ant, Maven과 같은 빌드도구의 단점을 보완한 오픈소스 빌드 도구
- Gradle 설치 없이 Gradle Mapper를 이용하여 빌드 지원
- 기존 Maven 빌드 도구에 대한 pom.xml 파일에 대한 migration 제공

17. 클래스와 객체의 차이
클래스 - 객체의 속성과 동작을 추려내 필드로 메소드로 정의한 것. (틀)
아직 메모리가 할당되지 않은 상태
객체 - 클래스 기반으로 실제 메모리가 잡힌 것.

18. 메모리 영역(스택과 힙)
스택(stack)
- static 변수, 전역 변수, class 정보 등이 올라가는 영역

힙(heap)
- new 키워드로 생성된 객체들이 저장
- 가비지 컬렉터에 의해 힙 영역 메모리 관리

19. Restful
URL만 봐도 어떤 작업을 하는지 알 수 있도록, 하나의 데이터가 하나의 URL만 갖도록 작업하는 방식

20. DI
객체들간의 의존성을 줄이기 위해 스프링 컨테이너가 객체를 관리하는 것.
어노테이션을 통해 데이터 간 의존성을 주입하는 방식으로 객체의 의존성 줄인다.

21. Generic
클래스 내부에서 사용할 데이터 타입을 인스턴스 생성시 결정짓는 방식


참고자료 : https://hahahoho5915.tistory.com/16
https://rongscodinghistory.tistory.com/44

반응형
Comments