본문 바로가기

반응형

전체 글

(133)
스프링 jpa 간단 노트 DB의 1 : 다 관게에서 FK는 "다"쪽에 들어가야한다. JPA 애너테이션 @Entity : jpa가 로딩될 때, 'jpa를 사용하는 객체구나. 내가 관리 해야하는 구나.' 인식. @Column : 컬럼 매핑 @Temporal : 날짜 타입 매핑 (요즘에는 쓸 필요가 없다.) 애너테이션 없이, LocalDate | LocalDateTime 형을 사용하면 된다. @Enumerated : enum 타입 매핑 (enumtype.string 옵션을 사용하자. enum에 데이터가 추가될 때 더 안전한다.) @Lob : BLOB, CLOB 매핑 @JoinCloumn : 외래키 매핑 @Transient : 객체와 테이블의 컬럼 관계를 끊는다. https://gmoon92.github.io/jpa/2019/09/29..
[컴퓨터구조] 캐시 메모리 캐시 메모리란? 속도가 빠른 장치 ↔️ 느린 장치 간 속도 차이에 의한 병목 현상을 줄이기 위한 메모리 Cache의 장단점 장점 속도가 매우 빠름 단점 용량이 적음 비용이 비쌈 ( SRAM 가격이 비싸기 때문) L1, L2, L3, 디스크 캐시 메모리 각 캐시의 위치 L1 : CPU 내부 ( 속도가 가장 빠르고, 용량이 가장 작음 ) L2 : CPU ↔️ RAM 사이 L3 : 메인보드 디스크 캐시 : 주기억장치(ROM, RAM)와 보조기억장치(하드디스크) 사이 CPU에 "L1", "L2", "L3" 캐시 메모리가 위치 L1, L2, L3는 속도와 크기에 따라 분류된 것으로 일반적으로 L1 캐시부터 사용 (L1에서 데이터를 찾지 못하면 L2, L3 순서로 참조) 만약 L1 캐시가 128KB면, 64KB +..
JPQL의 내장함수와 사용자 정의 함수 JPQL에서 제공하는 기본함수 COUNT 결과 집합의 개수를 반환. 예) "SELECT COUNT(e) FROM Employee e" SUM 숫자 필드의 합계 계산. 예) "SELECT SUM(e.salary) FROM Employee e" AVG 숫자 필드의 평균 값을 계산. 예) "SELECT AVG(e.salary) FROM Employee e" MAX 숫자나 날짜 필드의 최댓값을 반환. 예) "SELECT MAX(e.salary) FROM Employee e" MIN 숫자나 날짜 필드의 최솟값을 반환. 예) "SELECT MIN(e.salary) FROM Employee e" DISTINCT 중복된 결과를 제거. 예) "SELECT DISTINCT e.department FROM Employee ..
[컴퓨터구조] 총정리 컴퓨터 구조를 배워야하는 이유 문제해결 능력을 키울 수 있다. 성능, 비용, 용량을 고려하여 개발할 수 있다. 컴퓨터의 구성 요소들 메인보드 안 CPU 메모리에 저장된 값을 읽고, 해석, 실행 ALU(계산기) + 제어장치(제어신호 송신, 명령어 해석) + 레지스터(CPU 내부 작은 저장소) ALU 레지스터 ➡️ (연산할 데이터) ➡️ ALU 제어장치 ➡️ (제어 신호) ➡️ ALU ❇️(위의 과정으로 연산 후 ) ALU ➡️ (연산 결과) ➡️ 레지스터 제어장치 플래그 레지스터 ➡️ (플래그) ➡️ 제어장치 명령 레지스터 ➡️ (해석할 명령어) ➡️ 제어장치 (시스템버스의 제어버스) 제어신호 ➡️ 제어장치 ❇️(위의 과정 이후) 제어장치 ➡️ (제어 신호) ➡️ 레지스터 / ALU / 메모리 / IO장치..
[오픈소스] 테라폼 GetOk()의 Zero-value 이슈 해결하기 오픈소스 url : https://github.com/NaverCloudPlatform/terraform-provider-ncloud 네이버 클라우드 API 문서 : https://api.ncloud-docs.com/docs GetOk( ) 란? GetOk("ParameterName") 함수는 사용자가 리소스에 입력한 값들을 읽어오는 함수입니다. 입력된 파라미터 이름으로 값을 읽어온 후, Value와 ok를 반환합니다. GetOk 함수를 사용할 때의 문제 사용자가 아래와 같이 Zero-Value(0, false)를 값으로 입력할 경우, GetOk의 ok는 false로 받게 됩니다. resource "resource" "name" { ... cnt = 0 ... } v, ok := GetOk("cnt") ..
[정렬] Bubble, Selection, Quick Sort 정리 1. Bubble sort 인접한 두 원소를 비교하여, 교환 및 정렬하는 알고리즘 Selection Sort와 유사한 알고리즘 이름이 Bubble Sort인 이유: 거품처럼 수면으로 올라오는 듯한 모습 1. 1 Bubble Sort 과정 배열을 순회하며, [첫 번째 원소 ↔️ 두 번째 원소], [두 번째 원소 ↔️ 세 번째 원소] ... [마지막 - 1 원소 ↔️ 마지막 원소] 를 비교하며 교환 순회를 1회 반복하면, 배열의 1개의 원소가 정렬된다. 따라서 1번 과정을 N-1번 반복. 1. 2 코드 import java.util.Arrays; import java.util.Random; public class 자바연습장{ public static void main(String[] args) { Syste..
[JAVA] 객체 지향 설계의 5원칙 - SOLID 정리 SOLID 원칙 객체 지향 설계의 기반이 되는 원칙 잘 지키면, 더욱 구조화되며 유지보수성이 증대됨 SRP(Sing Responsibility Principle) : 단일 책임 원칙 클래스는 한 가지 기능 혹은 역할만 가져야 한다. 왜? 코드의 응집도와 유지보수성 향상 OCP(Open/closed Principle) : 개방-폐쇄 원칙 확장에는 개방 변경에는 폐쇄 즉, 기존의 코드를 변경하지 않고, 새로운 기능을 추가할 수 있어야 한다. 어떻게? 인터페이스와 추상화를 활용 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 상위 타입은 하위 타입으로 대체 가능해야 한다. 즉, 부모 클래스를 사용하는 코드는 자식 클래스를 사용해도 정상 동작해야 함 왜? 다형성을 보장하고,..
운영체제 - 프로세스와 스레드 프로세스 프로그램을 메모리 상에서 실행중인 작업 프로세스마다 최소 1개의 스레드를 소유 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드를 같이 생성 프로세스는 각각 별도의 독립적인 주소공간 할당 1. Code : 코드 자체를 구성하는 메모리 영역 ( 프로그램 명령) 2. Data : 전역변수, 정적변수, 배열 등 3. Heap : 동적 할당 시 사용 4. Stack : 지역변수, 매개변수, 리던 값 (임시 메모리 영역) 스레드 프로세스 안에서 실행되는 여러 흐름 단위 스레드는 Stack만 따로 할당 받고, 나머지 영역은 공유 멀티 프로세스 하나의 프로그램을 여러개의 프로세스로 구성하여, 각 프로세스가 병렬적으로 작업 수행 장점 안정성 (메모리 침범 문제 ➡️ OS 차원에서 해결) 단점 각각 독립된..