분류 전체보기 109

Connection pool

예를 들어서 관리자가 성적 조회 어플리케이션을 사용한다고 가정한다. 그 과정은 1. 조회(데이터 취득) 2. 수정 (데이터 갱신) 3. 성적 입력(데이터 등록) 등이 있을 수 있다. 일련의 과정을 거치면서 매 작업마다 DB접속이 있어난다. 한명이 이러한 작업을 할 경우 별 문제 없지만, 수백, 수천의 사람이 동시에 작업한다면 문제가 생긴다. 이러한 문제를 해결하기 위해 나온 기법이 Connection pool 이다. 커넥션 풀(Connection pool)이란, DB와 연결할 Connection 객체들을 Pool에 저장해 놓았다가 클라이언트 요청이 오면 커넥션을 빌려주고, 볼일이 끝나면 다시 반납받아서, pool에 저장하는 방식이다. DB를 연결할 때, 커넥션 풀을 사용하면, 미리 연결을 맺고 있는 커넥..

DB,SQL 2020.02.17

JAVA에서의 메모리 관리 (Heap, Stack, Static )

JAVA에서의 메모리 영역은 크게 Heap, Stack, Static 영역으로 나뉠 수 있다. Static 영역 하나의 JAVA 파일(Class)은 크게 필드(field), 생성자(constructor), 메소드(method)로 구성된다. 그 중 필드 부분에서 선언된 변수(전역변수)와 static키워드가 붙은 자료형 혹은 메소드는 Static 영역에 데이터를 저장한다. Static 영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 남아있게 된다. 다르게 말하면 전역변수가 프로그램이 종료될 때까지 어디서든 사용이 가능한 이유이기도 하다. 따라서 전역변수를 무분별하게 많이 사용하다 보면 메모리가 부족할 우려가 있어 필요한 변수만 사용할 필요가 있다. Stack 영역 New를 통해서 인스턴스 객체..

java 2020.02.14

Spring FrameWork 에서 CSS파일 JS파일 가져오기가 안될 때

Dynamic Web Project에서는 상대경로로 그냥 js파일이나 css파일을 읽어 올 수 있었다. 그런데, Spring STS 를 사용해서 프로젝트를 만들었을 경우 (Spring Legacy Project --> Spring MVC Project) 상대경로로 읽을 시 경로를 계속 읽을 수 없다고 나왔다. 그래서 찾아보니 프로젝트 안에 있는 servlet-context.xml에서 해당 파일들을 불러오는 디렉토리를 미리 설정해 놓고 있었다. servlet-context의 역활 : web application내에 있는 모든 서블릿들을 관리하며 정보공유할 수 있게 도와 주는 역할을 담당한다. 쉽게 말하면 웹 애플리케이션의 등록정보 정도로 생각하면 좋을 듯. servlet이란?? : 클라이언트가 어떠한 요청..

Spring 2020.02.12

IOC container, DIP, DI Framework

Inversion of Control(IOC) IOC : Inversion of Control (제어의 역전): 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 전통적인 프로그래밍에서 흐름은 프로그래머가 작성한 프로그램이 외부 라이브러리의 코드를 호출해 이용한다. 하지만 제어 반전이 적용된 구조에서는 외부 라이브러리의 코드가 프로그래머가 작성한 코드를 호출한다. 설계 목적상 제어 반전의 목적은 다음과 같다. 작업을 구현하는 방식과 작업 수행 자체를 분리한다. 모듈을 제작할 때, 모듈과 외부 프로그램의 결합에 대해 고민할 필요 없이 모듈의 목적에 집중할 수 있다. 다른 시스템이 어떻게 동작할지에 대해 고민할 필요 없이, 미리 정해진 협약대로만 동작..

Spring 2020.02.11

Bean VS POJO

1. Spring Bean이란? 자주 사용하는 객체를 singleton으로 만들어 놓고 어디서든 불러쓸 수 있도록 한 것. Repository, Service, Controllor 역활을 하는 java클래스를 Bean이라고 생각하면 될 것 같다. ******* 스프링에서의 POJO(Plain Old Java Object)를 Bean이라고 한다. 2. POJO란? POJO Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. 2000년 9월에 마틴 파울러, 레베카 파슨, 조쉬 맥킨지 등이..

Spring 2020.02.11

어노테이션(@) 간략 설명

************************* 참고 ************************** MVC모델을 만들때 각 영역의 이름을 아래 처럼 두고 하는 경우가 많다고 함(알파벳 순이라 보기 편한듯) 1. domain : 데이터 객체 2. repo(싱글턴으로 구현) : Repository 3. service(싱글턴으로 구현) : Service 4. web(싱글턴으로 구현) -- 컨트롤러가 여기로 들어간다 ********************************************************** 프로그램이 거대해 짐에 따라 XML을 이용하여 IOC Container 를 설정하는 것이 점점 어려워졌고, 그에 따라 어노테이션(Annotation)이란것이 등장을 했다. 어노테이션은 코드에 메..

Spring 2020.02.10

MVC 모델

MVC모델이란 모델-뷰-컨트롤러(Model–View–Controller, MVC)를 말하여 MVC모델은 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소(view)나 그 이면에서 실행되는 비즈니스 로직(Service, Repository)을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. 즉 Front-end 와 Back-end에 서로 영향을 미치지 않고 개발하는 것이다. MVC에서 Model은 애플리케이션의 정보(데이터)를 나타내며, View는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, Controller는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. 그리고 Servic..

Spring 2020.02.10

DB연동을 위한Ubuntu Linux Mysql 설치, 설정

1. virtual box 설치 ,ubuntu 설정 2. 우분투 설치 3. mysql설치 1 -- sudo passwd root -- 초기 root 비밀번호 설정 *********** 2 -- ssh 설치 (나는 putty로 작업을 하기 때문에 설치하는 것임) putty로 안하면 설정할 필요 없음 2-1 -- sudo apt-get install openssh-server : 서버만 설치 2-2 -- sudo apt-get install ssh : SSH 클라이언트와 서버를 동시에 설치 2-3 -- sudo vi /etc/ssh/sshd_config : ssh 설정파일 열기 2-4 -- (설정파일에서) Port 22써 있는 부분 주석 해제 :SSH의 기본 포트는 22번 2-5 -- (설정파일에서) Per..

DB,SQL 2020.01.31