전체 글

전체 글

    [Java] ArrayList

    1. ArrayList ArrayList는 List 인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고, 중복을 허용한다는 특징을 갖는다. ArrayList는 Object 배열을 이용해 데이터를 순차적으로 저장한다. 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장한다. 메서드 설명 ArrayList() 크기가 10인 ArrayList를 생성(디폴트) ArrayList(Collection c) 주어진 컬렉션이 저장된 ArrayList를 생성 ArrayList(int initialCapacity) 지정된 컬렉션이 저장된 ArrayList를 생성 boolean add(Object o) ArrayList에 마지막에 객체를 추..

    [Java] 컬렉션 프레임워크 (Collection Framework)

    1. 컬렉션 프레임워크컬렉션 프레임워크(Collection Framwork)이란 데이터를 저장하는 클래스들을 표준화한 설계를 말한다. 컬렉션은 데이터 그룹을 프레임워크는 표준회된 프로그래밍 방식을 의미한다.컬렉션 프레임워크는 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공하기 때문에 프로그래머의 짐을 덜어주고, 인터페이스와 다양한 객체지향적 설계를 통해 표준화되어있기때문에 사용법을 익히기에도 편리하다.1.1 컬렉션 프레임워크의 핵심 인터페이스컬렉션 프레임워크에서는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. 그리고 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Colle..

    [JAVA] 다차원 배열

    1. 다차원 배열 (Multi- dimension) 1.1 2차원 배열의 선언과 인덱스 2차원 배열은 주로 테이블 형태의 데이터를 담는데 사영되며, 만약 4행 3열의 데이터를 담기위한 배열을 생성하려면 다음과 같이 하면 된다. 2차원 배열의 요소에는 int의 기본값인 0이 저장된다. int[][] score = new int[4][3]; //4행 3열의 2차원 배열 2차원 배열의 index 2차원 배열은 행(row)과 열(column)으로 구성되어 있어 index도 행과 열에 각각 존재한다. 행index의 범위는 0 ~ 행의 길이-1, 열index의 범위는 0~열의 길이-1 이다. 각 요소에 접근하는 방법은 배열이름[행index][열index]이다. 이렇게 배열을 생성하면 score[0][0] ~ sco..

    [Java] String 배열

    1. String 배열 1.1 String 배열의 선언과 생성 String[] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열 생성 3개의 String 타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화된다. 참고로 null은 어떠한 객체도 가리키고 있지 않다는 뜻이다. 1.2 String 배열의 초기화 Stirng[] name = new String["kim", "king", "dong"] Stirng[] name = {"kim", "king", "dong"} String 배열의 경우 int 배열과 동일한 방법으로 한다. 배열에 실제 객체가 아닌 객체의 주소가 저장되어 있는 것을 볼 수 있다. 이처럼 기..

    [Java] 배열(Array)

    1. 배열(Array) 1.1 배열(Array)이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 ‘배열’이라고 한다. 변수와 달리 배열은 각 저장공간이 연속적으로 배치되어 있다. int[] score = new int[5] //5개의 int값을 저장할 수 있는 배열을 생성한다. 참고로 변수 score은 배열을 다루는데 필요한 참조변수일 뿐 값을 저장하기 위한 공간은 아니다. 그리고 score에는 배열 score[0]의 주소가 저장된다. 1.2 배열의 선언과 생성 //배열을 선언(배열을 다루기 위한 참조변수 선언) 타입[] 변수이름; int[] score; //배열을 생성(실제 저장공간을 생성) 변수이름 = new 타입[길이]; score = new int[5]; //배열의 선언과 생성을 동시에..

    [Go] 선언와 초기화 , zero value

    선언 및 초기화 (Declare & Initialize) //선언 var a int //선언과 동시에 초기화 var b int = 4 처음 변수 a 의 경우 초기값을 할당하지 않았으므로 정수형은 0, 문자형은 “”, 불리언은 false 로 초기화된다. 이렇게 이를 zero value라고 한다. 이때 할당하는 메모리의 모든 bit는 0으로 리셋된다. 메모리에 int 타입 크기에 해당하는 공간이 생기고,그 공간이 위치한 메모리 시작 주소를 a라는 이름로 지칭한다. 만약에 변수 b를 선언하면 컴퓨터는 메모리에 int 타입 크기에 해당하는 공간을 할당하고, 그 공간이 위치한 메모리 시작 주소를 b로 지칭한다. 그리고 해당 메모리 공간에 4라는 값을 복사한다. b = 10 만약 위의 변수 b의 값을 10으로 대입..

    Ip와 IP 클래스, CIDR, 서브넷

    1. IP 기기의 주소를 나타내는 것이 IP 주소이다. 1.1 공인IP ISP가 제공하는 IP주소이자 유일한 IP 주소를 갖는다 . 외부에 공개되어있기 때문에 다른 PC로부터 접근이 가능하며, 따라서 이 IP를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치해야한다. 1.2 사설IP (= 로컬 ,가상 ip) 라우터에 의해 할당된 ip를 말한다. 외부 접근 불가능하고 , 내부망 안에서만 접근 가능하다. IPv4의 주소부족으로 인해 서브넷팅된 IP를 말한다. ipconfig에 나오는 ip가 사설ip이다. 2. IP 클래스 IP주소는 대역에 따라 A,B,C,D,E 클래스로 나뉜다. 이 클래스들을 구분함으로써 클래스 내에서 Network ID와 Host ID를 구분하게 된다. 네트워크 ID란 네트워크를 구분..

    [Go] go build 명령어를 사용해 개발,상용환경 분리하기

    회사에서 개발환경은 리눅스였고, 로컬과 운영은 윈도우환경이었기 때문에 빌드 조건을 분리해야 했다. 따라서 go build constraint를 사용하면 된다. 이는 특정 파일에 대한 빌드 제약을 걸수있는 방법을 말한다. //cli go build -tags=debug //해당 태그가 있으면 해당 파일을 실행 //in file +build debug //-> 해당 파일 실행해서 빌드 +build !debug //-> 해당 파일을 실행하지 않고 빌드 //debug는 키워드를 의미한다. - go build constraint 참고 링크 https://www.jetbrains.com/help/go/configuring-build-constraints-and-vendoring.html#build-constrain..