java

· Spring
1. 연동 이유 및 사용했던 부분에 대한 내용 정리 회사 내부의 래거시 시스템인 근태 관리 시스템 고도화 개발중 사용자의 근무 시간 및 근무 정책에 따라서 동적으로 근무 정보를 표현하는 부분이 존재했다. 관리자가 정책 변경 또는 사용자가 근무 시간을 변경 (초과 근무, 휴가, 출장등) 을 신청 하고 결재하게 되면 사용자의 스케줄이 변하게 되고 해당 사용자 별로 각각의 유동적이 스케줄을 가지게 됩니다. 근무 정보를 구할때, 사용자 정보, 신청 정보, 이미 정산이된 근무량 등등(...😱) 너무 많은 데이터를 조합해서 근무 정보를 구해야한다. 고객사의 기준으로 년 단위 조회 또는 구축이 된지 오래된 고객사의 경우는 조회가 너무 느려지는 이슈가 발생을 하면서 방법을 찾기 시작했다. 쿼리 튜닝, DB 인덱스 추가..
· CS
⚡HTTP 진화 과정 페이지를 열고, 개발자 도구에서 네트워크 탭을 통해서 확인한 프로토콜의 정보이다. (어떤 페이지에서든 확인 가능) 위 사진의 프로토콜 컬럼을 보면 http/1.1, h2, h3 를 확인할 수 있다. 이는 각 통신이 HTTP/1.1, HTTP/2, HTTP/3 을 이용했다는 것을 알 수 있다. 여기서의 의문점은 하나의 웹 페이지에서 서로 다른 버전의 HTTP가 사용되고 있다는것이다. 그래서 이번에 정리해볼 내용의 경우 HTTP의 배경과 버전별 특징을 정리해보려고 한다. 왜 이렇게 변화가 되었는지를 알아야 기억하기도 편하다고 생각이 된다. HTTP/1.1전에 HTTP/1.0과 HTTP/0.9 라는 두 개의 버전이 더 있지만, 이 부분의 경우 좀 더 깊게 공부하고 싶은 경우 추천한다. 간..
· Java
자바 19에 추가되는 핵심 기능 7가지에 대해서 소개해보도록 하겠다. 2022년 9월에 출시된 자바 19 버전의 7번째 기능으로 구조적 동시성이 추가되었다. 멀티스레드 프로그래밍을 간편하게 지원하기 위한 요소이다. 해당 내용 외에 미리 공개된 6가지 핵심 기능에는 레코드 패턴, 외부함수와 메모리 API(프리뷰), 오픈소스 기반의 리눅스/RISC-V 명령어 집합구조(ISA) 지원 등이 있다. 추가된 내용을 자세히 한번 알아보자. ⚡구조적 동시성(인큐베이터) : 아직 인큐베이터 단계로 구조를 갖춘 동시성 라이브러리를 이용해 멀티쓰레드 프로그래밍을 제공한다. 동시성이라는 기능 덕에 여러 태스크를 서로 다른 스레드 안에 운영하고 동시에 단일한 유닛 형태로 관리할 수 있다. 따라서 사용자는 에러 관리나 취소 관련..
· Spring
⚡GraphQL SPQR이란? GraphQL 은 웹 API를 위한 쿼리 및 조작 언어이다. GraphQL을 보다 원활하게 사용할 수 있도록 만든 라이브러리 중 하나는 SPQR 이다. 기존 접근 방식에서는 GraphQL을 프로젝트에 추가하려면 두 단계를 따라야 한다. 먼저 GraphQL 스키마 파일을 프로젝트에 추가해야 한다. 둘째, 스키마에서 각 유형을 나타내는 각각의 Java POJO를 작성해야 합니다. 이는 스키마 파일과 Java 클래스의 두 위치에서 동일한 정보를 유지 관리한다는 것을 의미한다. 이러한 접근 방식은 오류가 발생하기 쉽고 프로젝트를 유지 관리하는 데 더 많은 노력이 필요하다. GraphQL Schema Publisher & Query Resolver, 간단히 말해서 SPQR은 위의 문..
· Java
⚡반복문의 종류 1. for loop 가장 빠르고 단순하다. 그래서 효율적이다. 모든 자료형에 대해 사용이 가능하다. 중간에 loop 건너뛰기나 종료가 가능하다. (continue or break) 반복 범위 컨트롤이 가능하다. (i++, i–, i+=2*i 등) 변수를 활용할 수 있다. (var i 값을 사용할 수 있다) 2. forEach 빠른 편이다. Array객체에서 사용이 가능하다. 일반 for문보다 가독성이 좋고, 객체형을 다루기가 쉽다. for문과 다르게 중간에 끊을 방법이 없다. (return으로 - skip가능) return값을 받지 못한다. 3. filter 빠른 편이다. Array객체에서 사용이 가능하다. chainable 하다. 빈 배열 요소를 반환하지 않는다. 대용량 배열 처리 시..
· Java
⚡대표적인 데이터 베이스 RDB NoSQL ⚡RDB :Relational DataBase (관계형 데이터베이스) 관계형 데이터 모델을 기본으로 두고 모든 데이터를 2차원 테이블 형태로 표현 하는 데이터 베이스 (쉽게 말해 엑셀 형태.) 서로 다른 테이블이 서로 관계를 맺고 모여있는 집합체. 관계를 나타내기 위해서 키(key) 각 테이블의 행들이 서로 연결되는 관계 (1:1, 1:N, N:M) 를 가질수 있다. 논리적 구성 Relation (릴레이션) Entity (개체) Attribute (속성) 과 Tuple (튜플) 로 구성 되어 있다. 논리 데이터 모델에서는 Entity, 관계형 데이터 모델에서는 Tabel, 관계형 모델에서는 Relation 이라고 불림. Attribute (속성) Entity를 ..
· GraphQL
⚡GraphQL 이란? GraphQL은 2012년 페이스북 개발자들이 모바일 어플리케이션을 제작하면서 만든 쿼리 언어이다. 기존에 많은곳에서 사용중인 REST API를 보안하기 위해서 만들어 졌으며 현재 많은 곳에서 Graphql을 사용하고 있다. GraphQL은 SQL (Structed Query Language) 와 같은 쿼리 언어 이다. 하지만 언어적 구조의 차이는 매우 크고 사용하는 방식에도 차이가 존재한다. SQL이 데이터베이스 시스템으로 부터 데이터를 가져온다면, GraphQL의 경우는 클러이언트가 데이터를 서버로 부터 가져온다. ⚡GraphQL vs REST GraphQL이 REST API 방식을 보안하기 위해서 만들어졌다면 어떤 차이점이 존재하는지 한번 알아보자 GraphQL API는 보통..
· Spring
⚡Spring JPA (Java Persistence API) JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. ⚡ORM ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻 객체-관계 매핑의 줄임말이다 ORM을 이용하면, SQL문이 아닌 클래스의 메소드를 통해서 데이터베이스를 조작 가능하다. 개발자가 객체 모델만 이용해서 프로그래밍을 하는데 집중이 가능하다. 단점이 있다면, 신중하게 설계가 필요하다. 프로젝트의 복잡성이 커지는 경우 잘못된 구현으로 인해서 속도 저하 및 일관성이 없는 문제점이 생길수 있다. 구형 SQL문이라던지 대형 SQL문의 경우 속도측면에 따라서 별도의 튜닝이 필요하기 ..
HaeTae
'java' 태그의 글 목록 (2 Page)