목록분류 전체보기 (41)
soowanlog
Java란? Java의 특징 - 객체지향 언어 - 높은 이식성 - 인터프리터 언어 - 메모리 자동 관리 - 동적 로딩 - 느린 실행 속도 ※ JVM Java 버전 별 특징 Java란? Java는 널리 사용되는 객체 지향 프로그래밍 언어로 다양한 디바이스에서 실행됩니다. 이름이 비슷한 Javascript와 다르다는 것도 이해해야 합니다. Javascript는 컴파일할 필요가 없지만 Java코드는 컴파일해야 하고 Javascript는 웹브라우저에서만 실행되지만 Java는 어디에서나 실행될 수 있습니다. 개발에 사용되는 여러 언어들이 놀라운 속도로 시장에 출시되면서 기존의 언어들을 대체하고 있습니다. 이런 지속적인 전환을 고려할 때 Java의 수명은 인상적입니다. Java의 특징 - 객체지향 언어 : 객체를 ..
UDP란? UDP를 사용하는 이유 UDP란? UDP(User Datagram Protocol)이란 TCP와 같이 IP에 기반한 프로토콜입니다. TCP와는 달리 데이터 순서 유지를 위한 작업을 하지 않고, 연결을 하지 않으므로 connect() 함수를 사용하지 않습니다. 즉, 연결을 하지 않고 데이터 손실에 대해 상관하지 않고 해당 IP에 전송하는 프로토콜입니다. UDP를 사용하는 이유 TCP와 달리 하나의 소켓으로 다수의 클라이언트에 대한 서비스를 제공할 수 있습니다. 데이터 손실의 위험은 있지만 다수의 클라이언트에게 데이터 전송이 가능하고 TCP보다는 속도가 빠릅니다. UDP는 실시간 영상 스트리밍 서비스와 같이 중간에 데이터가 손실 되어도 실시간으로 전송하는 곳에서 사용됩니다. 또한 온라인 게임에도 ..
ICMP란? ICMP의 주요 용도 - 에러 알림 - 진단/정보 전달 메시지 ICMP 형태 - Type - Checksum - Additional header field - Payload ICMP란? ICMP(Internet Control Message Protocol)란 이름 그대로 여러 정보를 전달하거나 관리하는 용도로 사용되는 프로토콜입니다. TCP/IP 계층 모델의 Network 계층에 위치합니다. ICMP의 주요 용도 - 에러 알림 : Packet 전송이 실패했을 때 에러가 났음을 알림과 동시에 해결 가능한 힌트를 제공합니다. - 진단/정보 전달 메시지 : ping, tr aceroute 명령 등 진단과 정보전달을 하는 데 사용합니다. ICMP 형태 - Type : ICMP Packet의 종류를 ..
Packet이란? ※ 대역폭 Packet의 구조 - 버전 - TTL(Time To Live) - 프로토콜 - 헤더 체크섬 - 소스 주소 - 대상 주소 - 데이터 Packet이란? Packet은 Pack과 Bucket의 합친 말로 우체국에서 화물을 적당한 덩어리로 나눠 행선지를 표시하는 꼬리표를 붙이는 방식을 데이터 통신에 접목한 것입니다. 즉, 정보를 보낼 때 특정 형태를 맞추어 보내는 것을 말합니다. 데이터를 주고받을 때 네트워크를 통해서 전송되는 데이터 조각이라고 생각하면 편합니다. 데이터를 조각내지 않고 한번에 보내는 것이 유리하다고 생각할 수 있지만 그렇게 된다면 데이터가 대역폭을 너무 많이 차지하기 때문에 Packet의 흐름을 원활하게 하지 못합니다. ※ 대역폭 신호를 전송할 수 있는 주파수의 ..
Internet Protocol Suite란? TCP/IP란? TCP의 작동 ※ 3-way handshake TCP의 특징 - 흐름 제어 - 혼잡 제어 Internet Protocol Suite란? Internet Protocol Suite는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약(Protocol)의 모음입니다. Internet Protocol Suite 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP Protocol Suite 로도 불립니다. TCP/IP란? TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있습니다. IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있습니다. TCP는 IP 위..
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가지 기능을 표준 인터페이스로 정의하여 제공합니..
Persistence란? Persistence Framework란? Persistence란? 영속성으로 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말합니다. 영속성을 가지지 않는 데이터는 단지 메모리에 존재해 프로그램이 종료되면 없어집니다. 데이터가 영속성을 갖기 위해선 파일 시스템, 데이터베이스 등을 활용해 구현하면 됩니다. Persistence Framework란? 데이터의 CRUD를 다루는 클래스 및 설정 파일들의 집합이고 간단한 작업으로 데이터베이스와 연동되는 시스템을 개발하고 안정적인 구동을 보장하므로 JDBC 프로그래밍의 복잡함과 번거로움을 해소해 줄 수 있습니다. Persistence Framework의 종류로는 SQL문으로 직접 DB데이터를 다루는 SQL 맵퍼와 ORM이 있습니다..
OOP란? ※ 프로그램 패러다임 OOP의 특징 1. 캡슐화(Encapsulation) 2. 추상화(Abstraction) 3. 다형성(Polymorphism) 4. 상속성(Inheritance) OOP의 설계 원칙(SOLID) - SRP(단일 책임의 원칙) - OCP(개방 폐쇄 원칙) - LSP(리스코프 치환 원칙) - ISP(인터페이스 분리 원칙) - DIP(의존 역전 원칙) OOP(Object-Oriented Programming)이란? 객체 지향 프로그래밍으로 컴퓨터 프로그램을 명령어의 목록으로 보는 (C언어와 같은 절차 지향 프로그래밍) 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 상호작용으로 프로그램 로직을 구성하는 프로그래밍 패러다임입니다. ※ 프로그래밍 패러다임(Programmin Pa..
ORM이란? 객체-관계형 데이터베이스 간의 불일치 ORM의 장점 ORM(Object Relational Mapping)이란? 객체와 관계형 데이터베이스 매핑의 줄임말입니다. 즉, 우리가 OOP에서 쓰는 객체라는 개념을 구현한 클래스와 RDB에서 쓰이는 데이터는 테이블을 매핑(연결)하는 것을 의미합니다. ORM을 이용하면 SQL Query가 아닌 직관적인 코드로서 데이터를 조작할 수 있습니다. // SQL Query @Select(""" SELECT * FROM member """) List findMember(); // ORM memberRepository.findAll(); 객체-관계형 데이터베이스 간의 불일치 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 아래와 같은..
트랜잭션이란? 트랜잭션의 특징 - 원자성(Atomicity) - 일관성(Consistency) - 독립성(Isolation) - 지속성(Durability) 트랜잭션의 Commit, Rollback - Commit - Rollback 트랜잭션이란? 트랜잭션(Transaction)이란, 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위입니다. 데이터베이스의 상태를 변화시킨 다는 것은 CRUD를 이용해 데이터베이스에 접근한다는 것을 의미합니다. 이때 작업의 단위는 CRUD 한 문장이 아니라는 점을 주의해야 합니다. 예를 들어, 한 사용자가 게시판에 글을 올린다면 Insert문이 실행되고 게시판을 최신 정보로 유지하기 위해 Select문이 이어서 실행될 것입니다. 여기서 작업의 단위는 Insert문..