분류 전체보기 175

VO / DTO / Entity

내용이 틀릴 수 있기 때문에 경계하며 읽어주셨으면 좋겠습니다. 블로그 글을 보면 vo, entity, dto에서 더 나아가면 도메인 설계에 대해서도 언급이 된다고하는데 아직 어떻게 연관이 있는지 잘 모르겠다. 추후 이해가 된다면 해당 글을 수정할 수 있도록 하겠다. VO(Value Object) 메모리 주소가 다르지만(?) 해당 객체의 값이 같다면 같은 객체로 취급한다. 이를 위해서 eqauls와 hashmethod를 재정의하는 것 같다...!(아닐 수도 있다.) 그리고 값을 변경(setter)하면 안된다. 따로 메소드(로직)을 가져된다, DTO(Data Transfer Object) 계층 간의 데이터를 전송하는 객체라고 생각한다. 따라서, setter를 사용해도 괜찮지만 따로 메소드(로직)을 가져서는 ..

[자바 문법] 어노테이션(Annotation)

똑똑한 chat GPT와 다른 사람의 블로그 등을 읽고 이해한대로 정리한 내용입니다. 어노테이션(Annotation)? 자바 코드에 메타데이터(metadata)를 추가하기 위한 것으로, 컴파일러, 런타임 시스템, 개발 도구 등에 의해 사용됩니다. 어노테이션은 주석(comment)과 유사하지만, 주석은 컴파일되지 않으며 단순히 코드의 설명을 제공하는 역할을 하지만, 어노테이션은 컴파일되어 클래스 파일에 저장되며 실행 시에 사용된다. 메타 데이터(Meta Data)? 메타 데이터는 해당 데이터의 특성, 속성, 구조, 관계 등을 기술하는 데이터입니다. 즉, 메타 데이터는 데이터를 설명하는 데이터라고 할 수 있습니다. 예) 사진 파일의 메타 데이터에는 파일 크기, 파일 형식, 촬영 일자, 위치 정보 등이 포함됩..

[Python] 해시 테이블(Hast Table)

해시 테이블 👉 key - value 데이터 하나의 key와 그 key 에 해당하는 value를 합쳐서: key - value 쌍 이라고 한다. 하나의 key 에는 하나의 value 만 있어야 한다. 👉 Direct Access Table 인덱스 대신 key 를 사용한다고 보면 된다. 사용하는 인덱스는 5 이지만, 배열의 크기는 943개를 사용하고 있다. 효율적으로 key -value 쌍을 저장하고 가져올 수 있지만, 낭비하는 공간이 너무 커진다. 👉 해시 테이블 개념 해시 함수 특정 값을 원하는 범위의 자연수로 바꿔주는 함수 해시 함수의 조건 해시 테이블의 해시 함수는 결정론적이어야 된다. 똑같은 key를 넣었을 때, 항상 똑같은 결과가 나와야한다. 결과 해시값이 치우치지 않고 고르게 나온다. 아무 숫..

[Java] 배열(Array)

★ 본 내용은 "코드잇의 자바 객체지향 프로그래밍" 및 " 김영한의 자바 입문" 을 듣고 정리한 내용입니다. ★ 배열이란?같은 타입의 여러 변수를 하나의 묶음으로 다루는 것참조변수(score)를 통해서 배열을 관리연속적으로 붙어있다.크기를 변경할 수 없는 정적 배열이다.int[] score = {10, 20, 30, 40, 50}배열 선언 및 생성배열을 선언하고 생성을 해야만 메모리 공간(저장)이 할당된다.int[] score; // 1. 배열 score를 선언(참조변수)score = new int[5]; // 2. 배열의 생성(int 저장공간)int[] score = new int[5]; // 3. 배열 선언과 생성을 동시 배열 초기화배열의 각 요소에 처음으로 값을 저장하는 것⭐ 배열을 선언과 생성만 ..

숏서킷 연산(Short-Circuit Evaluation)

💡 본 내용은 코드잇의 자바 객체지향 프로그래밍을 듣고 정리한 내용입니다. 👉 And 연산(&&) boolean newBoolean = m1() && m2() && m3(); newBoolean 이 true가 되기 위해서는 m1, m2, m3 모두 true 를 리턴해야한다. 따라서, m1이 false를 return 하면 m2, m3의 결과와 상관없이 false를 리턴하게 된다. 이렇게 식의 결과값이 이미 결정된 경우 미리 멈추는 것을 "솟서킷 연산(Short-Circuit Evaluation)" 이라고 한다. 👉 Or 연산(||) boolean newBoolean = m1() || m2() || m3(); newBoolean 이 true 이기 위해서는 모두 true가 되어야한다. 하나라도 false 이면..

[자바 문법] 기본형 vs 참조형

💡 본 내용은 코드잇의 자바 객체지향 프로그래밍을 듣고 정리한 내용입니다. 자바의 변수에는 두 가지 종류가 있다. 하나는 기본형(Primitive Type)과 참조형(Reference Type) 이다. 기본형(Primitive Type) 변수가 값 자체를 보관 1bit = 2진수 1자리 / 1byte = 8bit 논리형(1byte) true, false 문자형 Char(2byte) 정수형 byte(1byte), short(2byte), int(4byte), long(8byte) 실수형 float(4byte), double(8byte) int a = 3; int b = a; System.out.println(a); // 3 출력 System.out.println(b); // 4 출력 a = 4; Syste..

Java?

💡 본 내용은 생활코딩의 Java 입문 수업을 듣고 정리한 내용입니다. 자바란? 객체 지향적(Object-oriented) 자바는 숫자(int, float, long 등)나 논리값(true, false)을 제외한 거의 모든 것이 객체로 구성되어 있다. 실제로 자바는 Object 클래스에서 모든 클래스를 파생한다. 인터프리터 언어(Interpreted) 정확하게 말하면 컴파일 언어인 동시에 인터프리터 언어이다. ★먼저 텍스트 소스를 컴파일하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트하면서 실행한다. 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 동시에 얻을 수 있었다. 강력하다(robust) 자바는 포인터 연산을 지원하지 않는..

[Python] 링크드 리스트(Linked List)

💡 본 내용은 코드잇 기본 자료구조들 강의 및 신찬수 교수님의 자료구조 강의를 들고 요약한 내용입니다. 내용이 부족하거나 잘 못 될 수 있습니다. 추후 계속 공부하면서 수정하겠습니다~!! 링크드 리스트(Linked List) 데이터를 순서대로 저장해준다. 요소를 계속 추가할 수 있다.(동적 배열처럼) 연결된 박스(노드)들의 순서: 규리 → 태호 → 동욱 →유나 → 현승 👉프로그래밍적으로 생각 노드(Node): 데이터와 Next 의 객체이다. 연속적으로 되어 있는 것이 아닌 실제 메모리에는 ★흩어져★ 있다. # ------------- 간단한 링크 노드 ------------------- class Node: """링크드 리스트의 노드 클래스""" def __init___(self, data): self...

[Python] 배열(Array)

💡 본 내용은 코드잇 기본 자료구조들 강의 및 신찬수 교수님의 자료구조 강의를 들고 요약한 내용입니다. 내용이 부족하거나 잘 못 될 수 있습니다. 추후 계속 공부하면서 수정하겠습니다~!! 👉 배열(Array) 가장 기본적인 순차적인(Sequential) 자료구조 C 언어의 배열 크기가 고정돼 있다. 지우거나 삭제 불가능 같은 타입의 데이터만 담을 수 있다. 메모리에 연속적으로 저장 python의 리스트 C의 배열과 다르게 연속적일 수 있고 아닐 수 있다. 메모리에 값을 저장하는 것이 아닌 ★레퍼런스를 저장★ 따라서, 자료들의 크기가 상관이 없기 때문에 여러 타입들을 저장할 수 있다. Question 파이썬은 레퍼런스도 저장하고 실제 값을 저장하는 곳도 따로 있나? 그래서 더 많은 메모리를 사용한다??? ..

스터디 - 2주차

프로세스(Process) 👉 프로세스의 문맥(context) 어떤 단어를 사전에서 찾아보면 여러 가지 의미로 정의 되어 있어서 전체적인 문장 구조를 확인해야지 정확하게 어떤 의미로 사용했는지 알 수 있다. 즉, 프로그램이 처음 실행되어서 종료 되는 과정 중간에 끝나면(멈추게 되면) 해당 프로그램이 처음에 무엇을 어떻게 실행 되었는지 그리고 현재 시점에서 어떤 상태에 있는지 나타내기 위해서 사용되는 것이 문맥이다. 👉 프로세스 작업 과정 프로세스가 실행되면 메모리에 독자적인 주소 공간을 형성(stack, data, code 생성)하고 프로세스가 CPU 를 잡게 되면 프로그램 카운터(PC)가 프로세스 code 부분을 가리키고 있고 매순간 기계어를 하나씩 읽어서 레지스터에 값을 넣고 논리산술 연산을 하거나 결..

Computer Science/OS 2022.08.22