반응형

java 12

[Gradle] 궁금한 Gradle Declaring Repositories

Repository 선언 Declaring repositories Declaring repositories When searching for a module in a repository, Gradle, by default, checks for supported metadata file formats in that repository. In a Maven repository, Gradle looks for a .pom file, in an ivy repository it looks for an ivy.xml file and in a flat directory r docs.gradle.org Gradle 빌드는 대표적으로 MavenCentral 과 Google Android 공개된 Repository에 접근..

Java 2023.08.09

Spring Cloud Config Server 환경 변수를 분리해보자 (1)

실제 서비스에 적용할 아키텍처를 고민하던 중 Spring 에서 지원해주는 기술을 알게 되었고 그것을 구현하는 내용입니다. Spring Cloud Config 를 활용하면 환경변수들을 프로젝트 레포지토리 상에서 완전히 분리할 수 있습니다. 환경 변수 주입은 MSA 아키텍처와 관련해서 설계할 때 한번쯤은 생각 해보게되는 문제입니다. 여러 서비스가 어떻게 하면 환경 변수를 잘 주입 받을 수 있을까? 처음 제가 생각한 조건은 이러합니다. 환경 변수는 각 서비스의 레포지토리에 존재해서는 안된다. 환경 변수가 수정 되었을 때 수정된 내용을 잘 참조 할 수 있어야 한다. 여러 서버의 환경변수를 한 곳에서 체계적으로 관리할 수 있어야 한다. 민감한 환경변수는 통신을 할 때 암호화될 수 있어야 한다. 1. build.g..

Java 2022.12.01

Spring boot + Minio + Docker 예제를 만들어보자(1)

본 게시물은 2개로 나누어져 있습니다. (1) 에서는 전반적인 환경을 설정하는 파일을 설명합니다. Minio를 이용한 File 저장을 익히는 목적이 있으며, Minio의 동작원리와 사용법을 익히는데 중점을 두었기 때문에 서비스 운영에 목적을 두고 계시다면 수정이 필요할 수 있습니다. 우선, 제가 생각한 전체적인 아키텍처를 그림으로 보자면 이렇습니다. 가장 서버에게 부하를 주는것은 빈번한 다운로드, 클라이언트 입장에서도 가장 많이 이용하는 서비스가 다운로드 일 것입니다. 그래서 다운로드의 순서가 조금 특이한데 세부 설명을 좀 드리자면 1. 다운로드를 하고싶은 file을 요청합니다.(파일 경로를 특정할 수 있는 request) 2. 서버는 request에 있는 특정 경로를 추정하고 minio에게 파일 접근권..

Java 2022.11.21

Spring Cloud Config 란 무엇인가

1. 🍃 Spring Cloud Config 란 1-1. 정의 Spring Cloud Config는 분산 시스템에서 외부화된 구성을 위한 서버 및 클라이언트 측 지원을 제공합니다. Config Server를 사용하면 모든 환경에서 애플리케이션의 외부 속성을 관리할 수 있는 중앙 위치가 있습니다. 클라이언트와 서버의 개념은 Spring Environment과 동일하게 매핑됩니다.PropertySource추상화이므로 Spring 애플리케이션에 매우 적합하지만 모든 언어로 실행되는 모든 애플리케이션과 함께 사용할 수 있습니다. 애플리케이션이 개발에서 테스트 및 프로덕션으로 배포 파이프라인을 통해 이동할 때 이러한 환경 간의 구성을 관리할 수 있으며 애플리케이션이 마이그레이션할 때 실행하는 데 필요한 모든 것이..

Java 2022.11.20

Flutter androidx 마이그레이션 안될 때

androidx 마이그레이션 안될때 gradle-wrapper.properties 파일에서 distributionUrl=https\\://services.gradle.org/distributions/gradle-5.4.1-all.zip 다음 과 같이 버전 체크 및 수정 전체 프로젝트 build.gradle에서 다음과 같이 수정 dependencies { classpath 'com.android.tools.build:gradle:3.3.1' classpath 'com.google.gms:google-services:4.3.10' gradle.properties 파일에서 다음과 같이 추가 android.useAndroidX=true android.enableJetifier=true AndroidManifes..

Flutter 2022.03.22

JAVA 자주 까먹는 것들

자주 발생하는 예외 ArithmeticException : 정수를 0으로 나눌 때 NullPointerException : null 레퍼런스를 참조할 때 ClassCastException : 변환 할 수 없는 타입으로 객체를 변환 할 때 OutOfMemoryException : 메모리 부족 ArrayIndexOutOfBoundsException : 배열의 범위를 벗어난 접근 시 IllegalArgumentException : 잘못된 인자 전달 시 IOException : 입출력 동작 실패 또는 인터럽트 시 발생 NumberFormatException : 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환 시 OverLoading 메소드 명과 인자가 같으면서 return 값만 다른 경우 컴파일 오류..

Java 2022.02.25

Java Thread 기초

스레드 관리 정보 데몬 스레드 JVM이 스스로 필요에 의해 사용하는 스레드이다. 대표적인 예로 GC가 있다. 내가 작성한 스레드도 데몬 스레드로 표시하여 JVM이 인식하게 할 수도 있다. 일반 스레드가 모두 종료되면 데몬 스레드가 살아 있더라도 프로그램은 종료된다. 스레드 상태 NEW 스레드가 생성되었지만 아직 실행할 준비가 되지 않은 상태이다. start() 메소드가 호출되면 RUNNABLE 상태가 된다. RUNNABLE 스레드가 현재 실행되고 있거나 실행 준비되어 스케줄링을 기다리는 상태이다. WAITING 스레드가 어떤 Object 타입의 객체 a에 대해 a.wait()을 호출하고 무한 대기하면서 다른 스레드가 a.notify(), a.notifyAll()을 불러주기를 기다리고 있는 상태이다. 스레..

Java 2022.02.04

java 자주 발생하는 예외

자주 발생하는 예외 ArithmeticException : 정수를 0으로 나눌 때 NullPointerException : null 레퍼런스를 참조할 때 ClassCastException : 변환 할 수 없는 타입으로 객체를 변환 할 때 OutOfMemoryException : 메모리 부족 ArrayIndexOutOfBoundsException : 배열의 범위를 벗어난 접근 시 IllegalArgumentException : 잘못된 인자 전달 시 IOException : 입출력 동작 실패 또는 인터럽트 시 발생 NumberFormatException : 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환 시

Java 2022.02.04

Java 메모리 영역(Static, Stack, Heap)

❓Static ❓Stack ❓Heap 멀티스레드를 어떻게 사용할까? ❓Static 패키지나 클래스 정보가 호출되는 시점에 올라간다. static이 붙은 클래스 멤버(필드,메소드)도 이 영역에 올라간다. static을 붙일 대상은 읽기 전용이 아닌 경우, 가능한 사용하지 않아야 하고 무분별하게 사용하면 멀티스레드에서의 Thread Safe 문제가 발생할 수 있다. 클래스, 메소드 영역이라고 불린다. JVM 종료 시점까지 사라지지 않고 유지된다. ❓Stack 흔히 말하는 call stack이 이 영역에서 다뤄지는 내용이다. stack에서 선언된 지역변수는 stack에 위치한다. primitive는 stack 영역에 저장되고 reference(wrapper 등)는 참조값만 저장된다. 외부의 stack fram..

Java 2022.01.11

Java Servlet이란

자바 서블릿 💡 기본 개념 ❓ 어떻게 동작하나요? ❓ 왜 사용해야 하나요? 자바 서블릿 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.서블릿은 JSP와 비슷한 점이 있지만, JSP가 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있다는 차이점이 있다 💡 기본 개념 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트 html을 사용하여 요청에 응답한다. Java Thread를 이용하여 동작한다. MVC 패턴에서 Controller로 이용된다. HTTP 프..

Java 2022.01.11
반응형