본문 바로가기

내배캠/TIL

(60)
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..
24. 08. 06 Java ArrayList를 Array로 바꾸기 - toArray()List list = new ArrayList();// ...Object[] arr = list.toArray(); Object 타입의 배열을 반환하므로 활용이 번거롭다. - toArray(T[] a)List list = new ArrayList();// ...Integer[] arr = list.toArray(new Integer[0]); T 타입 배열을 반환한다.원시 타입 (int, double, float)이 아니기 때문에 값 타입 배열은 얻을 수 없다.파라미터 a의 길이는 0으로 지정하면 알아서 list의 길이에 맞게 조정되어 저장된다. - StreamList list = new ArrayList();// ...int[] arr ..