본문 바로가기

전체 글

(36)
[JAVA] primitive type & reference type 자바의 데이터 타입이다. 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지 명시적으로 알려준다. 기본형(Primitive type) 자바 언어에 내장된 기본형 타입이다. null은 존재하지 않는다. 만약 기본형 타입에 null을 넣고 싶다면 래퍼 클래스를 활용한다. 실제 값을 저장하는 공간으로 stack 메모리에 저장된다. wrapper class는 각 primitive type을 클래스로 만든 것이다. 만약 컴파일 시점에 담을 수 있는 크기를 벗어나면 컴파일 에러가 발생한다. 타입 할당되는 메모리 크기 기본값 데이터의 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byte 0 -128 ~ 127 short 2 byte 0 -..
[JAVA] String, StringBuilder, StringBuffer String, StringBuffer, StringBuilder 모두 문자열을 저장하고 관리하는 클래스다. 1) String 문자열을 대표하는 것으로 문자열을 조작하는 경우 유용하게 사용할 수 있다. 문자열, 숫자, char 등은 연결할때 StringBuffer, StringBuilder 를 사용할 수 있다. 단순히 연결하는 경우 StringBuffer, StringBuilder를 굳이 쓰지 않고 + 연산자를 사용한다. String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않는다. +연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후, 여기에 연결된 문..
객체지향프로그래밍 ( Object Oriented Programing) - OOP 객체지향프로그래밍 (OOP)는 객체의 관점에서 프로그래밍 하는 것이다. 객체들의 유기적인 관계를 통해 프로세스가 진행된다. 애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍하는 것을 말한다. 객체 (Object) 란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별가능한 것을 말한다. 속성과 동작으로 구성되어 있다. 자바에서는 속성을 필드, 동작을 메소드라고 한다. 객체지향의 특징 1. 추상화 객체들의 공통의 속성이나 기능을 묶어 이름을 붙이는 것으로 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념이다. 2. 캡슐화 객체의 필드, 메소드를 하나로 묶고 실제 구현내용을 감추는 것이다. 불필요한 정보를 감출 수 ..
추상클래스 vs 인터페이스 추상클래스란? 미완성 설계도라고 할 수 있다. 어떤 공통된 클래스들에 대해 추상화된 부분을 추상메소드를 통해 하위 클래스들에게 상속을 통해 사용할 수 있도록 한다. 추상클래스는 인스턴스, 즉 객체를 만들 수 없다. 추상 메소드는 하위 클래스에서 메소드의 구현을 강제해야 하고, 추상 메소드를 포함하는 클래스는 반드시 추상 클래스여야 한다. 상속하는 집한간에는 연관관계가 있다. 다중 상속이 불가하다. 인터페이스란? 구현된 것은 아무것도 없고 밑그림만 그려져있는 기본 설계도다. 모든 멤버 변수는 public static final 이어야 하며 이는 생략 가능하다. 모든 메소드는 public static abstract 이어야 하며 이 또한 생략 가능하다. java8부터는 static, default metho..
JAVA 접근 제한자 ( PUBLIC, PRIVATE, PROTECTED, DEFAULT) 접근 제한자란? Access Modifier 클래스나 변수, 메서드의 접근을 제어하기 위해 적어주는 예약어다. 접근 제한자 정의 적용하는 곳 접근할 수 없는 클래스 PUBLIC 모든 접근을 허용 클래스, 필드, 생성자, 메소드 없음 PROTECTED 같은 패키지안에 있는 객체와 상속관계의 객체들만 허용 필드, 생성자, 메소드 자식 클래스가 아닌 다른 패키지에 소속된 클래스 DEFAULT 같은 패키지에 있는 객체들만 허용 클래스, 필드, 생성자, 메소드 다른 패키지에 소속된 클래스 PRIVATE 현재 객체 내에서만 허용 필드, 생성자, 메소드 모든 외부 클래스 1. PUBLIC 모든 접근을 허용한다. 패키지, 클래스가 동일하지 않아도 모든 접근이 가능하다. 같은 클래스 내, 같은 패키지 내의 다른 클래스,..
Node.js란? Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다. 런타임이란 특정 언어로 프로그램을 실행할 수 있는 환경을 뜻한다. 노드를 통해 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는 데 가장 많이 이용된다. Node.js는 JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다 Node.js는 V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(환경)이다. Node.js는 서버사이트 스크립트 언어가 아니고 프로그램 즉, 환경이다. Node.js는 웹서버와 같이 확장성있는 네트워크 프로그램을 제작하기 위해 만들어졌다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹서버에서 아파치 등의 별도 소프트웨어 없이..
메타버스 (metaverse) 메타버스 또는 확장 가상 세계는 가상, 초월을 의미하는 '메타(meta)'와 세계, 우주를 의미하는 '유니버스(universe)'를 합성한 신조어다. '가상 우주'라고 번역하기도 한다. 이는 3차원에서 실제 생활과 법적으로 인정되는 활동인 직업, 금융, 학습 등이 연결된 가상 세계를 뜻한다. 가상현실, 증강현실의 상위 개념으로서, 현실을 디지털 기반의 가상 세계로 확장시켜 가상의 공간에서 모든 활동을 할 수 있게 만드는 시스템이다. 메타버스의 네 가지 유형 1. 증강현실 (Augmented Reality) = AR 현실공간에 2D 또는 3D로 표현한 가상의 겹쳐 보이는 물체를 통해 상호작용하는 환경을 의미한다. 사람들에게서 가상세계에 거부감을 줄이고, 몰입도를 높인다. 2. 일상기록 (Lifeloggin..
Maven과 Gradle의 차이 1. 빌드 관리 도구이다. 프로젝트시 내가 작성한 java 코드와 xml, properties, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해준다. 애플리케이션 개발시 필요한 라이브러리들을 설정파일을 통해 자동으로 다운로드 해주고 이를 관리해준다. 2. Maven Java용 프로젝트 관리도구로 Apache의 Ant 대안으로 만들어졌다. 빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리의 종속성 관계를 pom.xml에서 설정한다. maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 후, 로컬의 캐시에 저장한다. 3. Gradle Apache Maven과 Apache Ant의 대안으로 나온 프로젝트 빌드 관리 툴이다. Groovy 언어를 사용한 Domain-speci..