본문 바로가기
728x90

전체 글188

JAVA stream /* 스트림은 배열이나 컬렉션(List, Set, Map)으로 원하는 값을 얻을 때 for문 도배를 방지하기 위해 나온 개념인데 10줄짜리 코드를 Stream을 사용하면 한 줄로 줄여버릴 수 있다 선언 - 배열, 컬렉션(list, set, map) 등을 스트림 형태로 만들기 Stream stream명 = Arrays.stream(배열명); Stream stream명 = 리스트명.stream(); Stream stream명 = Stream.of('값', '값'....); */ import java.util.Arrays; import java.util.Comparator; import java.util.stream.Collectors; import java.util.stream.Stream; public c.. 2023. 10. 18.
HTTP 헤더 - 일반 헤더 1. HTTP 헤더 개요 Content-Type : text/html;charset=UTF-8 Content-Length: 3423 header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용) filed-name은 대소문자 구분 없음 용도 HTTP 전송에 필요한 모든 부가정보 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 표준 헤더가 너무 많음 필요시 임의의 헤더 추가 가능 helloworld : hihi 분류 - RFC2616(과거 - 1999년 폐기됨. 2014년 RFC7230 ~ 7235등장) 헤더 분류 General 헤더 : 메시지 전체에 적용되는 정보 | Connection: c.. 2023. 10. 15.
데이터 모델링의 이해 모델링은 단지 시스템 구현만을 위해 수행하는 타스크가 아니며, 시스템 구현을 포함한 업무분석 및 업무형상화를 하는 목적도 있다. 데이터 모델링을 하는 주요한 이유는 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이 첫 번째 목적이다. 두 번째는 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이 두 번째 목적이다. 데이터모델링을 할 때 유의사항 : 중복성, 비유연성, 비일관성 개념적 데이터 모델링 - 추상화 수준이 높고 업무 중심적이며 포괄적인 수준의 모델링 물리적 데이터 모델링 - 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려한 데이터 모델링 개념스키마 - 통합관점의 스키마구조를 표.. 2023. 8. 22.
Spring 에서 자주 사용하는 Annotation 정리 JAVA에서 Annotation 이라는 기능이 있습니다. 사전상으로는 주석의 의미이지만 Java 에서는 주석 이상의 기능을 가지고 있습니다. Annotation은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종입니다. 소스코드에 추가하면 단순 주석의 기능을 하는 것이 아니라 특별한 기능을 사용할 수 있습니다. @SpringBootApplication : spring boot application으로 설정 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class TestApp.. 2023. 7. 17.
REST API 와 CRUD ## REST Representational State Transfer : 자원의 상태 전달 - 네트워크 아키텍처 커뮤니케이션에 대한 간단하고 표준화 된 접근 방식이다. 데이터 형식, 요청 형식을 지정하는 방법이 표준화되어있다.1. Client, Server : 클라이언트와 서버가 서로 독립적으로 분리되어 있어야 한다. 2. Stateless : 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.  ex) 햄버거 가게 치즈버거 주세요 → 치즈버거 하나와 콜라 주세요 → : 모든 요청에 대해서 새롭게 나가야 한다.3. Cache : 클라이언트는 서버의 응답을 Cache(임시저장) 할 수 있어야 한다.  - 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 .. 2023. 7. 17.
DAO생성에서 확인하고 넘어갈 개념 4가지 DAO란 Data Access Object의 약어로서 실질적으로 DB에 접근하는 객체를 말한다. 1. class.forName(); 클래스로더를 통해서 해당 데이터베이스 드라이버를 로드하며, 데이터베이스와의 연결에 관해서는 아무런 동작도 하지 않는다. 2. preparedstatement sql구문을 실행하는 역할 코드 안정성 높음. 가독성 높음 텍스트 sql호출 3. resultset select 의 결과를 저장하는 객체 4. Session 쿠키와 마찬가지로, 클라이언트와 서버의 연결을 유지시켜주는 방법 중 하나이다. http 프로토콜은 요청(클라이언트 -> 서버) 한 번과, 응답(서버 -> 클라이언트) 한 번이 이루어지면, 연결을 해제한다. 연결을 계속 유지시 서버 과부하가 걸릴 수 있기 때문이다. .. 2023. 7. 17.
markdown 작성법 markdown 작성법제목 : #의 개수로 h1 ~ h6까지 표현 가능하다. (ex:# h1)h1과 h2는 밑에 '='와 '-'를 2개 이상 사용하면 '#'을 대체할 수 있다.문단 간격, 줄 바꿈은 순서 표기하는 목록은 1.2....순서 없는 목록은 '-,*,+'을 사용굵게 (__나 **를 글자 양옆에)기울여쓰기 (_나 *를 글자 양 옆에)취소선 (~~를 글자 양 옆에)인용문은 >를 쓰면 되고, 들여쓰는 인용문은 >개수를 늘리면 된다.코드 블럭은 백틱(`)을 세 개 사용하여 위아래로 감싸서 작성할 수 있고, 백틱 3개 뒤에 언어 이름을 넣어라수평선은 *이나 -,_등을 3개 이상 입력하면 작성할 수 있다.테이블은 |로 구분하며, -(하이픈)으로 구분된 곳 각각 왼쪽, 양쪽, 오른쪽에 :(세미콜론)을 붙일 .. 2023. 7. 17.
빌드 자동화 도구 Gradle vs Maven Maven : 스프링 프로젝트 pom.xml Gradle : 스프링부트, 안드로이드 Maven 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운받아준다. Maven은 프로젝트의 전체적인 라이프사이클을 관리하는 도구이다. Maven은 JDK설치와 같이 설치할 수 있다. Maven 의 Lifecycle 미리 정의하고 있는 빌드 순서를 라이프 사이클이라고 한다. 각 빌드 단계를 Phase라고 하는데, 이런 phase들은 의존관계를 가지고 있다. clean : 이전 빌드에서 생성된 파일들을 삭제하는 단계 validate : 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계 compile : 프로젝트의.. 2023. 7. 17.
HTTP 상태 코드 상태코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (informational) : 요청이 수신되어 처리중 2xx (successful) : 요청 정상 처리 3xx (redirection) : 요청을 완료하면 추가 행동이 필요 4xx (client error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (server error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 2xx - 성공 200 : ok 201 : created / 요청 성공해서 새로운 리소스가 생성됨 202 : accepted / 요청이 접수되었으나 처리가 완료되지 않음 204 : no content / 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 .. 2023. 7. 16.
조인 방식(NL, SORT MERGE, HASH JOIN) 1. NL Join ( Nested Loops Join) 조인 컬럼에 인덱스 있으면 유리 선행 테이블에서 만족하는 행수가 적을수록 유리 → 컬럼 순서가 중요함 수행시간이 적게걸리는 소량테이블 조회시 유리 select /*+ order use_nl(e) */ e.empno, e.ename, d.dname,e.job, e.sal from dept d, emp e where e.deptno = d.deptno 2. Sort Merge Join 조인 전 양쪽 집합 정렬 부분범위 처리 가능 테이블 별 검색 조건에 의해 전체 일량이 좌우됨 스캔위주의 조인방식 3. Hash Join 둘 중 작은 집합(Build Input)을 읽어 해시 영역(Hash Area)에서 해시 테이블(= 해시 맵)을 생성하고, 반대쪽 큰 집.. 2023. 7. 14.
728x90