본문 바로가기

분류 전체보기

Spring 에서 테이블명을 사용자가 선택하여 데이터 Insert 및 Select 하기 본 글은 이전 글들과 이어진다. 2019/08/01 - [Spring] - Spring boot에서 maven을 통해 mybatis MySQL 사용하기 - select 2019/08/07 - [Spring] - Spring boot에서 maven을 통해 mybatis MySQL 사용하기 - insert 저번 글에서 문제 삼았던 부분이 롤 프로게임팀은 t1 뿐만 아니라 여러 팀이 있는데 나는 t1 하나만 보고 프로젝트를 작성했다. 그래서 xml에는 select * from t1, insert into t1 ~~~ 처럼 오로지 t1 테이블에만 접근이 가능한 쿼리문을 작성했다. 여기서 나는 GenG, Griffin 등 다양한 팀의 명단을 출력 및 선수 추가를 하고 싶다. 우선 GenG를 더 추가해주었다. 1... 더보기
Spring boot에서 maven을 통해 mybatis MySQL 사용하기 - insert 지난 글에서 이어지는 글이다. 2019/08/01 - [Spring] - Spring boot에서 maven을 통해 mybatis MySQL 사용하기 - select - 환경 IntelliJ IDEA 2018.3.6 (Ultimate Edition) Mac OS 지난 글에서 select를 하기 위해 Model class인 MemberModel 에서 lombok을 이용하여 쉽게 Getter를 사용했다. insert를 위해서는 Setter가 필요하므로 똑같이 @Setter annotation을 추가해준다. 1. Setter 추가 (lombok 이용) Setter를 생성했으면 DB에 접근해서 Setter로 받은 정보를 사용하는 함수를 DAO에 선언해준다. 2. DAO Interface에 setMember 함수.. 더보기
Spring boot에서 maven을 통해 mybatis MySQL 사용하기 - select - 환경 IntelliJ IDEA 2018.3.6 (Ultimate Edition) Mac OS Spring boot을 사용하기 전에 Spring boot이 무엇인지 알아보자. 일단, Spring이 IoC/DI 기반으로 된 자바 프레임 워크다. IoC는 객체 생성 및 소멸이 알아서 대신 작동되는 것이고 DI는 interface의 method를 사용하면 나중에 주입하는 클래스에 따라 다른 기능을 하는 것이다. 그럼 Spring boot은 단순하게 스프링 프로젝트라고 생각하면 된다. 스프링이 점점 지원하는 라이브러리가 많아지니까 자주 사용하는 프로젝트 조합을 미리 만들어 빌드하는게 Spring boot이다. tomcat 서버를 내장하고 있기에 Spring에서 하던 연동 작업을 할 필요가 없다. 또, 제목에 .. 더보기
데이터베이스 용어 정리 관계 데이터 모델의 개념 relation : 2차원의 테이블 (스프레드 시트와 유사) record : relation의 각 행 tuple : record를 좀 더 공식적으로 부르는 용어 attribute : relation에서 이름을 가진 하나의 열 domain : 한 attribute에 나타날 수 있는 값들의 집합. 프로그래밍언어에서 데이터 타입과 유사. 동일한 도메인이 여러 attribute에 사용될 수 있음. 도메인 정의 ex) CREATE DOMAIN EMPNAME CHAR(10); CREATE DOMAIN EMPNO INTEGER degree : 한 relation에 들어있는 attribute들의 수. 유요햔 relation의 최소 degree는 1. cardinality : relation의 .. 더보기
[2019.07.04] Uniprocessor Scheduling Types of Scheduling - Long-term scheduling : New 상태에 있는 프로그램들 중에 누굴 memory에 올릴지 결정 - Medium-term scheduling : suuspended 상태에 있는 프로그램들 중에 누굴 올릴지 결정 - Short-term scheduling : ready 상태에 있는 프로그램들 중에 누굴 올릴지 결정 Scheduler가 발생할 때 1. 누가 와서 내 프로세스를 뺏어갈 때 (preemptive), ready상태로 감. 2. 내가 자발적으로 프로세스 놓음 (nonpreemptive), blocked 상태로 감. Scheduling 기준 - CPU utilization : CPU가 얼마나 바쁘게 일하는지 - Turnaround time : 프로그.. 더보기
[2019.07.03] Page Replacement Replacement Policy : 어떤 page가 대체 (swap) 될 것인가? 대체되는 Page는 나중에 가장 참조될 가능성이 적은 애이다. Basic Replacement Algorithms - FIFO : memory에 가장 오래 있던게 대체된다. - Optimal Policy : 제일 긴 시간 후에 사용될 page를 대체한다. 하지만 예측할 수 없으므로 사용 못한다. - Least Recently Used : 가장 오래전에 사용된 page를 대체한다. 근데 시간을 저장하므로 시간, 비용이 많이 든다. - Clock Policy : LRU와 비슷하지만 근사한시킨 알고리즘을 사용한다. use bit을 설정하여 0인 page를 대체한다. 성능은 OPT > LRU > CLOCK > FIFO 순이다. .. 더보기
[2019.07.02] Virtual Memory 프로세스는 조각되어 들어가기 때문에 main memory에 연속적으로 들어갈 필요가 없다. - Virtual memory의 이점 main memory 크기와 상관없이 더 큰 process도 실행할 수 있다. 더 많은 process 들이 main memory에 올라온다. -> CPU가 노는 시간이 줄어든다. 현재 실행 중인 process들이 다 I/O가 되어 blocked 상태이면 CPU가 논다. -> swapping이 제안되었지만 suspended로 보내는 것도 process를 디스크에 올리는 데 오래 걸림 -> VM이 제안됨. 조금씩만 memory에 올림. - Program 실행 1. OS가 program의 조각 조금을 main memory에 가져온다. 2. main memory에 없는 주소가 요구되면.. 더보기
[2019.07.01] Memory Management memory 할당 및 할당 후 보호 요구사항 - Relocation : 프로세스는 실행하는 동안 다른 메모리 위치를 점령한다. 프로그램이 실행되는 동안 디스크로 swap 되고 다른 위치의 main memory로 반환된다. - Sharing : 몇몇 process들이 memory의 같은 부분에 접근하는 걸 허용 Memory Partitioning - Equal-size Paritioning : 모든 process의 memory를 똑같이 할당한다. 하지만 이러면 안쓰게 되는 부분(internal fragmentation)있다. 메모리 낭비. - Unequal-size Partitioning : memory 공간을 효율적으로 할당할 수 있지만 시간, OS가 낭비 된다. - Dynamic Partitioning.. 더보기
[2019.06.28] Concurrency : Deadlock and Starvation Deadlock : 두개 이상의 process가 자원을 기다리는 데 일어나는 충돌. 각자 자원을 가지고 있는 상태에서 다른 거 요청할 때 일어난다. - Reusable Resources : 한번에 하나의 프로세스에만 사용되며 그 사용으로 고갈되지 않는다. ex. Processor, I/O channels, main memory, semaphore ... 예제. memory 공간에 200KB의 가용 공간이 있다. P1에는 80KB 다음 60KB를 요구하는 statement가 있다. P1에서 80KB를 요구하는 statement를 실행하고 (남은 메모리 120) context switch 일어나서 P2를 실행한다. P2에는 70KB 다음 80KB를 요구하는 statement가 있다. 70KB를 할당해주고 (.. 더보기
[2019.06.27] Concurrency : Mutual Exclusion and Synchronization CPU 하나가 여러개의 프로그램을 동시다발적으로 진행. 하나의 processor (CPU) 에 producer processes와 consumer process가 가동된다. Producer/Consumer Problem 하나 이상의 Producer가 data 만들고 buffer에 저장함. 하나의 consumer는 buuffer에서 하나씩 가져옴. 한번에 오직 하나의 consumer or producer 만이 buffer에 접근할 수 있다. Producer/Consumer : Finite Buffer main memory에 shared memory 공간을 할당해 변수들을 저장한다. (shared data) -> 동시에 producers, consumer가 접근할 수 있다. - Producer Process.. 더보기