본문 바로가기

전체 글

(104)
WAS 웹 서버(Web Server)HTTP 기반으로 동작정적 리소스 제공, 기타 부가기능정적(파일) HTML, CSS, JS, 이미지, 영상예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server)HTTP 기반으로 동작웹 서버 기능 포함 (정적 리소스 제공 가능)프로그램 코드를 실행해서 애플리케이션 로직 수행동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVC예) 톰캣(Tomcat) Jetty, Undertow  차이점웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고, 웹 애플리케이션 서버도 웹 서버의 기능을 제공함자바는 서블릿 컨테이너 기능을 제공하면 WAS (서블릿 없이 자바코드 ..
SQL 다중 조인 SQL 3개 이상의 테이블 조인 하는 방법 (1)select x.컬럼이름A, y.컬럼이름B, z.컬럼이름C, ...from 테이블이름X x, 테이블이름Y y, 테이블이름Z z, ...where x.컬럼이름M=y.컬럼이름N and y.컬럼이름O=z.컬럼이름Q;[출처] [오라클/SQL] JOIN 심화 : 3개, 4개 이상의 테이블을 JOIN 하는 경우(multiple joins)|작성자 리제 (2)SELECT c.id, c.first_name, c.last_name, s.date AS sale, b.name AS book, b.genreFROM customers AS cLEFT JOIN sales AS s ON c.id = s.customer_idLEFT JOIN books AS..
SQL INSTR() 함수 INSTR() 함수INSTR() 함수는 다른 문자열에서 문자열이 처음 나타나는 위치를 반환한다. 대소문자는 구분하지 않는다.   [사용법]INSTR(string, substring)- string : 검색 대상이 되는 문자열- substring : 찾고자 하는 문자열(부분 문자열) [반환값]substring이 string 내에 존재하면, 그 부분 문자열이 처음으로 나타나는 위치를 1부터 시작하는 숫자로 변환한다. substring이 string 내에 존재하지 않으면 0을 반환한다. [예시]SELECT INSTR('Hello, World!', 'World');이 쿼리는 문자열 "Hello, World!"에서 "World"라는 부분 문자열이 시작하는 위치를 반환한다.결과는 8인데, "World"는 "H"부터..
예외 처리 에러와 예외 (Error and Exception)넓은 의미에서는 프로그램 실행 시 발생할 수 있는 모든 문제들을 에러라 부르기도 하지만, 에러와 예외는 프로그래밍에서 엄밀히 말하면 차이가 있다.특히, 코드 실행(run-time) 시 발생할 수 있는 문제들을 크게 에러와 예외로 구분하고 있다. 에러(Error)의 경우, 한 번 발생하면 복구하기 어려운 수준의 심각한 문제를 의미하고, 대표적으로 메모리 부족인 OutOfMemoryError와 스택 오버플로우(StackOverflowError)가 있다. 예외(Exception)는 개발자의 잘못된 사용으로 인해 발생하는 에러는 상대적으로 약한 문제의 수준을 말한다. 즉, 개발자의 실수로 인해 발생하는 것이다. 이는 코드 수정을 통해 수습이 가능한 문제이다. 따..
IoC와 DI IoC (Inversion of Control)제어의 역전이라는 뜻으로, 전통적인 프로그래밍에서는 개발자가 프로그램의 흐름과 제어를 직접 다루는 반면, IoC는 프레임워크가 객체의 생성, 관리, 제어 흐름을 담당하도록 변경하는 개념이다. Spring은 이를 지원하기 위해 ApplicationContext라는 컨테이너를 제공한다.  DI (Dependency Injection)의존성 주입. 하나의 객체에 다른 객체의 의존성을 제공하는 기술. 장점은 다음과 같다.코드의 재활용성을 높여 유지보수가 용이해진다.클래스 간 결합도를 낮출 수 있다.인터페이스 기반으로 설계되며, 코드를 유연하게 한다.단위 테스트하기 더 쉬워진다. IoC와 DI는 좋은 코드 작성을 위한 Spring의 핵심 기술 중 하나로, IoC는 설..
오브젝트와 의존관계 Serverless 란?‘서버를 관리할 필요가 없는’개발자가 서버를 관리할 수 없고, 내부로 접속할 수도 없다.그렇다면 누가 관리? → AWSAWS의 대표적인 Serverless 서비스LambdaAurora ServerlessFargate 등 (+) Containerless‘컨테이너를 관리할 필요 없는’대표적인 예가 바로 스프링 오브젝트와 의존관계Class Oriented Programming이 아닌 Object Oriented Programming클래스틀설계도청사진프로토타입오브젝트객체실체클래스의 인스턴스배열오브젝트란?클래스의 인스턴스 혹은 배열    3. 관심사의 분리코드를 변경에 유리하게 작성하는 것중복 코드를 줄이는 것재사용성을 높이는 것
DTO, DAO, VO DTO 란?Data Transfer Object (데이터 전송 객체) 프로세스 간에 데이터를 전달하는 객체로, 비즈니스 로직 같은 복잡한 코드 없이 getter/setter 메소드와 순수하게 전달하고 싶은 데이터만 담겨있다. 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는데, 여기서 계층이란 Presentation (View, Controller), Business(Service), Persistence(DAO, Repository) 등을 의미한다.   DAO 란?Data Access Object. 실제로 DB의 데이터에 접근하는 객체.DAO는 Service와 DB를 연결하는 역할을 하며, 실제로 DB에 접근하여 데이터를 삽입, 삭제, 조회, 수정 등 CRUD 기능을 수행한다.   VO 란?Val..
Git .gitignore 적용하기 .gitignore 란?특정 파일이나 디렉토리를 git 버전 관리에서 의도적으로 추적하지 않도록 설정하는 파일이다.로그, 컴파일 파일 같은 용량이 큰 파일 또는 보안 관련 키 파일이 포함될 수 있다.  1. .gitignore 파일 만들기항상 폴더의 최상단에 존재해야 한다.  2. 적용하기gitignore 파일을 commit 후 push 한다.  [문법]# : comments# no .a files*.a# but do track lib.a, even though you're ignoring .a files above!lib.a# only ignore the TODO file in the current directory, not subdir/TODO/TODO# ignore all files in the b..