반응형

분류 전체보기 270

DataBase

엔티티 Entity 엔티티는 현실 세계에 존재하는 것을 데이터베이스 상에서 표현하기 위해 사용하는 추상적인 개념이다. 일종의 비유라고 할 수 있다. 릴레이션(relation) 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 엔티티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리한다. 즉 릴레이션은 하나의 테이블 이라고 생각하면 된다. 필드와 레코드 필드 Field는 열 (column)에 해당하는 가장 작은 단위의 데이터를 의미한다. 레코드 (Record)는 논리적으로 연관된 필드의 집합을 의미하며, 엑셀의 행(row)에 해당한다. 스키마 Schema 데이터베이스의 골격 구조를 나타내는 일종의 도면이다. 어떤 타입의 데이터가 어느 위치에 적재되어야 하는지, 다른 테이블이나 엔티티와 어떠..

DB/Mysql 2021.11.06

Maven vs Gradle

Maven 자바용 프로젝트 관리 도구이다 아파치 앤트의 대안으로 만들어 졌다. 아파치 앤트는 자바 프로그래밍 언어에서 사용하는 자동화된 소프트웨어 빌드 도구이다 쉽게 말해 프로젝트를 진행하면서 사용할 수있는 많은 라이브러리들을 관리해두는 도구이다. 메이븐은 네트워크를 통해서 연관된 라이브러리 까지 같이 업데이트를 해주기 때문에 과거에 일일히 수동으로 다 업데이트 혹은 견결 시켜주던 것을 자동으로 해준다는 편리함이 있다. Gradle Gradle은 작업 의존성 그래프를 기반으로하는 반면 Maven은 고정적이고 선형적인 단계의 모델을 기반으로한다고 한다. 성능 측면에서는 둘 다 다중 모듈 빌드를 병렬로 실행할 수 있지만, Gradle은 어떤 task가 업데이트되었고 안되었는지를 체크하기 때문에 increme..

Spring 2021.11.05

DB Connection Pool

DB Connection Pool 사용 이유 Connection pool(연결 풀) 사용 목적은 DB Connection 정보를 캐시(메모리 영역)에 저장/관리하여 애플리케이션 단에서 DB Connection 정보가 필요할 때마다 Connection pool에서 연결 정보를 가지고 와 사용하도록 하는 것이다. Connection pool에서 Connection 정보를 관리하기 때문에 DB에 연결하기 위한 연결 정보 생성 시간이 없어 DB Connection을 위한 시간이 월등히 줄어든다 DB Connection Pool 특징 Pool 속에 미리 Connection이 생성되어 있기 때문에 Connection을 생성하는 데 드는 연결 시간이 소비되지 않는다. Connection을 계속해서 재사용하기 때문에 ..

Web 2021.11.05

아스키코드 vs 유니코드

아스키코드(ASCII Code) 컴퓨터는 0과 1 숫자 밖에 모르기 때문에 문자도 숫자로 기억한다. 이때, 어떤 숫자와 어떤 문자를 대응시키는가에 따라 여러 가지 인코딩 방식이 있는데 통상 아스키 코드 방식을 많이 사용한다. 아스키 코드(ASCII Table)는 0번부터 127번까지만 사용한다. 127번 이후 코드를 사용했던 적도 있었는데 이는 표준이 아니며 운영체제마다 다른 코드(문자)를 배치했기 때문에 호환이 되지 않는다. 윈도우즈 운영체제는 현재 128번부터 255번 사이에 포함된 문자를 출력하려는 시도에 대해 물음표(?)를 출력해서 사용하면 안된다는 것을 알려주고 128번과 255번 문자는 물음표는 아니지만 사용할 수 없는 문자이다. 128~255 특수 문자 0~127 자주쓰는 문자 0~31 특수..

Web 2021.11.03

직렬화 역직렬화

직렬화(Serizlization) 자바의 객체를 바이트의 배열로 변환을 해서 파일이나, 메모리, 데이터베이스등이 저장을 하는 과정을 말한다. 직렬화는 인터페이스를 구현해야 한다 보통 클래스의 멤버변수 전부 직렬화 대상에 해당되나, 보안상의 문제나 기타 이유로 멤버변수의 일부를 제외하고 싶다면 transient를 통해 지정할 수있다. 역직렬화(Deserialization) 직렬화된 파일 등을 역으로 직렬화하여 다시 객체의 형태로 만드는 것을 의미한다. 저장된 파일을 읽거나 전송된 스트림 데이터를 읽어 원래 객체의 형태로 복원한다.

Language/Java 2021.11.01

XML & JSON & YAML

XML & JSON & YAML 모두 데이터를 표현하는 형식이다 1. XML 데이터를 표현하기 위하여 HTML과 비슷한 구조를 가지고 있다. XML의 특징은 태그로 구분, 트리(Tree) 계층 구조를 가지고 있다. 태그는 꺽쇠()를 이용하여 명시하며, 닫는 태크에는 슬래시( / )을 함께 넣어준다. XML은 주석이 가능하다. 형태로 사용할수 있다. 홍길동 95 Soccer Ninza 이순신 100 Sing Dancing 2. JSON(JavaScript Object Notation) Json도 XML과 비슷하게 데이터를 처리하기 위한 형식으로 구성되어있다. Json은 모든 프로그래밍 언어에서 Json을 지원한다는 점에서 XML & YAML 보다 채택률이 높다. 기본적으로 JSON 형식에서는 키(ke..

Web 2021.10.30

[생활코딩] Home Server 강의 정리

공유기를 전문 용어로 라우터(router)라고 한다. 공유기(router) 사용하는 이유 client와 server가 통신수단이다. IP 을 컴퓨터에 받았지만 휴대폰과 노트북의 인터넷을 사용하려면 IP가 있어야되는데 3개의 IP을 가질려면 돈이 많이 든다 이를 해결 하기위해 공유기(router)가 나왔다. 통신사한테 ip을 받은 선을 공유기(WAN)에 연결하면 공유기에 IP주소가 생긴다 LAN에 노트북이나 컴퓨터를 랜선으로 연결하고 휴대폰같은 경우는 안태나를 통해 받는다. WAN 과 LAN 이 무엇일까? LAN(Local Area Network) 지역 네트워크, WAN(Wide Area Network) 광역 네트워크 WAN에 받은 아이피는 public ip Address로 누구나 접근이 가능하고 LAN에..

Web 2021.10.30

List, Set, Map

List List 에는 ArrayList, Vector, LinkedList, Stack, Queue가 있다. 데이터가 순서대로 저장 되며 찾기가 수월하다. 검색 및 삭제가 가능하며 중복이 가능하다 Set HashSet, TreeSet 이 있으며 TreeSet는 이진 트리 구조로 되어있다. 저장 순서가 유지되지 않습니다. 중복이 안되며 null 도 저장이 가능하다 Map HashMap, HashTable, TreeMap, Properties key와 value로 구성된 객체를 저장하고 있다. key는 중복이 안되고 value는 중복이 가능하다. 만약 key에 중복이 발생하면 기존에 있던 key는 없어지고 새로운 key값이 저장된다. ArrayList ArrayList는 데이터가 인덱스에 순서대로 저장이 ..

Language/Java 2021.10.10

StringBuffer클래스

StringBuffer란? String처럼 문자열 배열(char[])을 내부적으로 가지고 있다 그러나 String과 달리 내용을 변경할 수 있다.(mutable) public final class StringBuffer implements java.io.Serializable { private char[] value; ... } 편집할 문자열의 길이를 고려하여 버퍼의 길이를 충분히 잡아주는 것이 좋다. 편집 중인 문자열이 버퍼의 길이를 넘어서게 되면 버퍼의 길이를 늘려주는 작업이 추가로 수행되어야하기 때문에 작업효율이 떨어진다. StringBuffer의 생성자 배열의 길이 변경불가. 공간이 부족하면 새로운 배열 생성해야한다 StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야한..

Language/Java 2021.10.03

java.lang패키지와 유용한 클래스

Object클래스 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다 equals(Object obj) 객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false Object클래스의 equals()는 객체의 주소를 비교 (참조변수 값 비교) class EqualsEx1 { public static void main(String[]args) { Value v1 = new Value(10); Value v2 = new Value(10); if ( v1.equals(v2)) { System.out.println("v1과 v2는 같습니다."); } esle { System.out.println("v1과 v2는 다릅니다."); } v2 = v1; if (v1.equa..

Language/Java 2021.10.03
반응형