본문 바로가기

전체 글72

Entity, Dto, VO의 차이는? 현재 토이프로젝트로 Spring 환경에서 JPA를 사용하게 되었습니다. 이전에 프로젝트를 진행했을 때, 프로젝트마다 Dto, Domain, VO 명칭을 제 각각 사용하고 있었습니다. JPA를 사용하면서 Entity나 DTO, VO 뭔가 비슷 비슷한 개념의 것들을 확실히 짚고 넘어가야 할 것 같다는 생각이 들어서 내용을 정리해보게 되었습니다. 1. Entity 란? Entity Class는 실제 DataBase의 테이블과 1 : 1로 Mapping 되는 Class로, DB의 테이블내에 존재하는 컬럼만을 속성(필드)으로 가져야 합니다. Entity Class는 상속을 받거나 구현체여서는 안되며, 테이블내에 존재하지 않는 컬럼을 가져서도 안됩니다. Entity Class 또는 가장 Core한 Class라고 부.. 2023. 1. 7.
JDBC, DBCP 그리고 JNDI Connection과 Connection pool DriverManager.getConnection()은 실제 자바프로그램과 데이터베이스를 네트워크상에서 연결해주는 메소드입니다. - Connection은 네트워크상의 연결 자체를 의미하며 Connection Pool의 Connection 객체 각각을 직접 웹 애플리케이션에서 이용하면 체계적인 관리가 힘듭니다. - Connection 과정은 부담되는 작업이며, 불필요한 연결에 의한 서버 자원의 낭비가 발생하게 됩니다. - Connection 객체를 프로그램이 실행될 때마다 생성하는 것이 아니라 웹 애플리케이션이 서비스되기 전에 웹서버에 미리 생성하여 준비한 다음 필요할 때 준비된 Connection을 가져다 사용함으로써 JDBC 프로그래밍 문제점들을 개선할.. 2022. 12. 9.
window 환경 tomcat + apache 연동하기 이번에는 window 환경에서 tomcat과 apache를 연동해보겠습니다. 1. 필요 프로그램 설치 우선 tomcat, apache, jk_mok을 다운받습니다. 톰캣 다운로드 apache 다운로드, jk_mok다운로드 다운받은 파일들을 압축풀고 mod_jk.so 파일을 복사하고 Apache 폴더의 modules 하위에 복사를 합니다. Apache 경로안에 있는 폴더 중 아래를 중요하게 보시면 됩니다. bin : 아파치 실행관련 파일 conf : 아파치 설정관련 파일 htdocs : 정적인 파일 logs : 아파치 관련 로그 파일 modules : 모듈 관련 파일 (Tocat과 연동을 위한 모듈 포함) 이어서 Apache 폴더에 있는 conf 폴더로 들어가 httpd.conf 파일을 수정합니다. 2. .. 2022. 11. 19.
JAVA 8 함수형 인터페이스 함수형 인터페이스(Functional interface)는 1개의 추상 메서드를 갖고 있는 인터페이스입니다. public interface FunctionalInterface { public abstract void printText(String text); } 자바의 람다식은 함수형 인터페이스로 접근이 되기 때문에 함수형 인터페이스를 사용합니다. 람다함수 : 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표현하는 방법입니다. 아래 코드에서 변수 func는 람다식으로 생성한 객체를.. 2022. 11. 12.
로드밸런싱과 클러스터링 로드밸런싱(Loadbalancing) 로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다. 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절히 분산처리하여 해결해 주는 서비스입니다. 로드밸런싱은 하나의 서비스를 하나 이상의 노드가 처리하는 식으로 작동합니다. 서버의 로드를 클러스터링된 서버별로 균등하게 나누어 주는 서버를 말합니다. 로드밸런싱을 이용하면 한 서버가 다운되더라도 이중화시킨 다른 서버에서 서비스를 지속하여, 사용자들이 문제를 인지하지 못하게 할 수 있습니다. 로드밸런싱을 위한 서비스 요청 처리 알고리즘은 다양합니다. 랜덤, 라운드 로빈, .. 2022. 11. 5.
열거형(enum) class Direction { static final Direction EAST = new Direction("EAST"); static final Direction SOUTH = new Direction("SOUTH"); static final Direction WEST = new Direction("WEST"); static final Direction NORTH = new Direction("NORTH"); private String name; private Direction(String name){ this.name = name; } } 열거형은 JDK1.5부터 새로 추가되었습니다. JAVA의 열거형은 C언어의 열거형보다 향상되었고 타입까지 관리하기 때문에 논리적인 오류를 줄일 수 있습니다. c.. 2022. 10. 29.