본문 바로가기

개발기술

(132)
빌드 후 서버 배포 로컬배포mavenLocal 배포자체 library를 쓰는 프로젝트에서 local 배포를 진행할때 mavenLocal 저장소에 자체 library 빌드를 진행한다.clean build publishToMavenLocal -x testmavenLocal 배포 저장위치gradle 에서 아래의 두가지 변수에 따라서 배포파일의 위치가 결정된다.group = 'some.platform'version = '1.0.0'~/.m2/repository/{groupId}/{artifactId}/{version}/ 전체 빌드와 배포 프로세스개발 단계 : 개발자가 Java 코드를 작성합니다.빌드 : Gradle을 사용하여 전체 빌드 과정을 처리합니다.서버 배포.jar 파일( .class 파일의 묶음)을 실행시키기 위해서 ..
비동기 프로그래밍 패턴과 처리 방식 동기처리(Synchoronous Programming)여러 작업을 순차적으로 실행하도록 개발하는 방법. 동기 처리는 한 작업이 끝나야 다음 작업을 시작할 수 있는 방식입니다. 순차적인 작업을 위해서 현재 진행중인 작업의 완료를 기다리며 대기하는 구조입니다.비동기처리(ASynchoronous Programming)여러 작업을 동시에 실행하는 프로그래밍 방법론. 비동기 처리는 한 작업이 끝나기를 기다리지 않고, 다른 작업을 수행할 수 있는 방식입니다. 비동기처리방식은 두가지 종류가 존재하며 멀티스레드 방식과 Non-Blocking I/O 방식이 있다. 멀티스레드 방식은 작업의 세트를 여러 스레드별로 나누어 가지어 동시에 실행하는 방식. 논블럭킹 방식은 하나의 스레드가 여러가지 작업을 담당하는데, I/O작업..
Docker 개념 및 커맨드 가상화(Virtualization) vs. 컨테이너(Containerization)가상화: 하나의 물리 시스템(호스트)에서 하드웨어 자원을 소프트웨어적으로 나누어 여러 개의 독립된 컴퓨팅 환경(가상 머신, VM)을 생성하는 기술. 하이퍼바이저라는 소프트웨어가 지원. 각 가상머신은 독립적인 컴퓨팅 환경으로 독립적인 OS를 갖고 어플리케이션 실행가능.독립된 환경 : 자원, OS, 커널, 파일 시스템 등 모든 것이 완전하게 분리됨.컨테이너 : 애플리케이션과 그 실행에 필요한 필요한 모든 실행 환경(코드, 라이브러리, 시스템 도구 등)을 패키징하여 실행하는 경량화된 가상화 기술. 주로 리눅스 컨테이너 기술(Linux Containers, LXC) 기반. 각 컨테이너는 독립적인 OS가 아니라 OS 커널을 공유하면..
MSA도입을 위한 Spring Cloud Spring Cloud Gateway 설정은 마이크로서비스 아키텍처에서 여러 개의 독립된 서비스로 나누어진 애플리케이션에 대한 요청을 중앙에서 관리하고, 라우팅과 필터링을 수행하기 위한 구성입니다. 이를 통해 사용자는 여러 서비스에 개별적으로 접근하지 않고, 하나의 진입점(Gateway)을 통해 서비스에 접근할 수 있게 됩니다.   1. 프로젝트 환경 설정Spring Boot 프로젝트 생성: Spring Initializr 또는 IDE를 통해 Spring Boot 프로젝트를 생성하고, Spring Cloud Gateway와 Security에 필요한 의존성을 추가합니다.의존성 추가:Spring Cloud Gateway: 라우팅과 필터링을 제공.Spring Security: 보안 기능을 제공하여 인증과 인가..
Spring JPA Entity 설정 Entity 생성하기Entity 생성하기 엔티티(Entity)란 JPA에서 데이터베이스 테이블과 매핑되는 클래스를 의미하며, 각 엔티티 객체는 데이터베이스에서 독립적으로 관리되는 레코드(행, row)를 나타냅니다. @Entity : JPA에서 해당 클래스가 데이터베이스 테이블과 매핑됨을 나타내는 필수 애너테이션@Table(name="테이블명") : 클래스명과 테이블명을 다르게 지정하고 싶은 경우에는 @Table 어노테이션을 사용하여 원하는 테이블명을 명시Entity의 Column 설정하기 Table column들의 속성을 annotation을 통해서 셋팅해둔다..@Id: 엔티티 클래스를 정의할 때는 기본적으로 기본 키(primary key)로 사용할 필드를 지정합니다 @GeneratedValue(S..
Java 코딩구현 심화 : 스트림,람다식 특수 클래스 : Inner Class내부클래스 : 클래스 in 클래스 (클래스 안에 선언한 클래스) 내부클래스의 종류 : 정적 클래스 (static)OuterClass는정적(static)이 될 수 없습니다. 때문에 정적클래스는 내부클래스만을 지칭합니다외부 클래스와 논리적 관계만 있음, 독립 사용 가능외부에서 직접생성가능 내부클래스의 종류 : 인스턴스 내부 클래스 (non-static)외부 클래스의 인스턴스에 종속적인 내부 클래스입니다. 이러한 클래스는 외부 클래스의 인스턴스가 생성된 후에야 인스턴스화 될 수 있으며, 외부 클래스의 인스턴스 변수 및 메소드에 직접적으로 접근할 수 있는 권한을 가집니다. 주로 외부클래스 인스턴스의 필드멤버처럼 다루어지며, 인스턴스멤버들과의 작업을 위해 만들어짐.외부 ..
그래프이론 알고리즘, 자료구조 정리 그래프 이론의 필요성 높은 수준의 프로그래밍을 하기 위해서는 그래프이론에 대한 탄탄한 이해가 필수적이다. 프로그래밍의 발전은 결국 정보의 연결성의 증대에 의한, 연결성 증대를 위한 방향으로 발전하고 있기 때문이다. 예를 들어, FaceBook과 같은 연결형 SNS, Google과 같은 검색엔진, Netflix와 같은 추천서비스, Amazon과 같은 동선최적화, OpenAI와 같은 자연어처리 등 모두 내가 선택한 Node로부터 주변 Node를 탐색하는 문제이기때문이다. 고등수학에서 잘 다루지 않아서 익숙하지 않은 것이지 어려운 것은 아니라고 생각한다. 높은 수준의 프로그래머가 되기 위해서는 결국엔 선형대수학을 어느정도는 이해해야 할 것이고 그것의 근본이 그래프 이론이니 지금부터 피할 수 없는 기초를 ..
Spring Security 전체개념 보안의 필요성 공격자는 여러 방법으로 Wi-Fi 네트워크나 라우터에 접근하여 그 안을 흐르는 데이터를 제어하거나 모니터링할 수 있습니다. 인터셉션이 발생하는 방법 공격자가 사용자와 서버 사이의 데이터를 몰래 엿보거나 수정하는 행위입니다.중간자(MitM) 공격 : 공격자가 사용자와 서버 사이에서 트래픽을 조작하거나 가로챔패킷 스니핑 : 네트워크를 통해 오가는 데이터 패킷을 몰래 가로채 분석 스푸핑(위장) 공격 방법스푸핑은 속임수를 통해 신뢰받는 사용자나 시스템으로 가장하여 불법적인 접근이나 데이터를 탈취하려는 공격입니다a. IP 스푸핑: 공격자가 자신이 보내는 패킷의 IP 주소를 위조하여 요청이 신뢰할 수 있는 IP 주소에서 온 것처럼 보이게 합니다.b. 세션 하이재킹: 공격자가 유효한 세션 ID(예: 세..