최신
Discovery Server (Spring Cloud Eureka)
카테고리 없음2025.02.27 20:34Discovery Server (Spring Cloud Eureka)

Service Discovery란MSA환경에서 동적으로 변경되는 서비스들의 위치(IP, 포트)를 자동으로 찾고 연결하는 기술을 의미기존 모놀리식 아키텍처에서는 모든 기능이 하나의 애플리케이션에 포함되어 있기때문에 내부에서 직접 호출함으로써 Service Discovery와 같은 역할이 필요하지 않았음MSA는 서비스가 여러개로 분리되어있기때문에 서비스 간의 네트워크 통신이 필요하게 됨만약 Service Discovery가 없는 MSA라면 서비스가 변경될 때마다 수동으로 IP를 변경해야하고 이는 운영이 매우 복잡해지며 장애 발생 가능성이 증가하게 된다.Discovery Service 없이 MSA를 사용할 경우예를 들어서 기존 MSA서비스에서 UserService와 ProductService만 운영해왔었는데 ..

인텔리제이 Spring.io없이 서블릿, 톰캣 웹 개발환경 셋팅하기
카테고리 없음2024.11.20 23:49인텔리제이 Spring.io없이 서블릿, 톰캣 웹 개발환경 셋팅하기

평소에 Spring Framework, JPA등 완성도 있는 프레임워크들을 사용하다보니 프레임워크에 정확한 동작원리를 깊이 있게 알지 못 한다는 느낌을 받았고최근 다양한 프레임워크 위주로 취업준비를 하는 개발자들에 대한 일침아닌 일침을 날리는 유튜브 쇼츠 영상을 보았었다.댓글을 확인해보니 새로운 기술, 다양한 프레임워크를 통해 편리한 개발을 지향하는 것은 좋지만 정확한 원리를 알지 못하고 주먹구구 식으로 프레임워크를 사용하는 신입개발자들이 많다는 댓글을 보았다.아무래도 프레임워크라는게 반복적으로 사용되는 코드들을 미리 구현하여 편리하게 사용하도록 인터페이스화 한 것이기때문에 내부코드를 들여다 볼 기회가 거의 없기때문에 사용이유에 대해서 정확한 정의를 내리는 것이 쉽지 않았다.물론 댓글 내용중 프레임워크 ..

[Git] gitignore와 관리해야할 파일
Git2024.11.08 04:33[Git] gitignore와 관리해야할 파일

.gitignore 파일은 Git의 root 디렉토리에 저장되어 Git Repository에 추가되지 않아야하는 폴더나 파일들을 정의하는 파일이다.예를 들어서 스프링 애플리케이션에서 secret-key와 같은 값을 가지고 있는 application.properties파일을 Git을 사용하여 관리하고 Remote Repository에 올릴 경우 내부에서 관리해야하는 secret-key를 외부에 공개함으로써 보안 문제가 발생할 수 있는 것이다따라서 Git을 통해 프로젝트를 관리할 때 가장 먼저 gitignore파일을 정의하여 어떤 파일들을 Git을 통해 트랙킹 하지 않도록 할 것인지 정의하는게 우선이다 무시할 파일 등록하기그렇다면 어떻게 파일을 등록하고 무시할 파일의 범위를 지정하는 방법에 대해 알아보자개발..

프로그래밍
[Java] 람다 표현식과 함수 인터페이스
[Java] 람다 표현식과 함수 인터페이스
Java
2024.11.08 02:21
람다란 무엇인가?람다 표현식은 익명 클래스처럼 클래스의 이름이 없고 메서드를 인수로 전달할 수 있으므로 익명 클래스와 유사하다익명: 이름이 없기때문에 익명의 특징을 갖는다함수: 메서드처럼 특정 클래스에 종속된것이 아니기때문에 함수라고 부른다. 하지만 메서드처럼 파라미터, 바디, 반환형식, 가능한 예외 리스트를 포함한다전달: 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다간결성: 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다Comparator byWieght = new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight());..
[JAVA] 예외 계층
[JAVA] 예외 계층
Java
2024.07.09 14:12
Throwable: 최상이 예외Error: 메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구가 불가능한 시스템 예외Exception애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외Exception과 그 하위 예외는 모두 컴파일러가 체크하는 체크 예외이다. 단 RuntimeException은 예외RuntimeException: 언체크 예외, 런타임 에외컴파일러가 체크하지 않는 언체크 예외RuntimeException과 그 자식 에외는 모두 언체크 예외이다사용자 정의 예외 계층예외 계층화의 장점부모의 예외를 잡거나 던지면 자식 예외도 함께 잡거나 던질 수 있다특정 예외를 잡아서 처리하고 싶다면 하위예외를 잡아서 따로 처리하면 된다사용자정의 최상위 예외public class Networ..
[JAVA] 자바의 정렬 인터페이스 Comparable과 Comparator
[JAVA] 자바의 정렬 인터페이스 Comparable과 Comparator
Java
2024.07.04 20:52
자바에서 배열에 대해 정렬을 하고싶다면 어떻게해야할까?코드를 통해 살펴보자import java.util.Arrays; public class SortMain1 { public static void main(String[] args) { Integer[] array = {3, 2, 1}; System.out.println(Arrays.toString(array)); System.out.println("기본 정렬 후"); Arrays.sort(array); System.out.println(Arrays.toString(array)); } }실행결과[3, 2, 1]기본 정렬 후[1, 2, 3]util패키지의 ..
해시 알고리즘
Java
2024.06.29 01:38
import java.util.Arrays; public class HashStart1 { public static void main(String[] args) { Integer[] inputArray = new Integer[4]; inputArray[0] = 1; inputArray[1] = 2; inputArray[2] = 5; inputArray[3] = 8; System.out.println(Arrays.toString(inputArray)); int searchValue = 8; for (int inputValue : inputArray) { ..
[JAVA - 자료구조] HashSet
[JAVA - 자료구조] HashSet
Java
2024.06.29 01:38
이제 Set컬렉션에 해시알고리즘을 적용하여 Set보다 훨씬 성능이 좋은 HashSet을 구현해보자먼저 HashSet에서는 해시 알고리즘을 활용할 인덱스를 갖는 배열과 그 각각의 배열안에 해시 코드값이 같은 데이터를 저장하기위한 LinkedList로 구현된다.필드영역static final int DEFAULT_INITIAL_CAPACITY = 16; LinkedList[] buckets; private int size = 0; private int capacity = DEFAULT_INITIAL_CAPACITY;DEFAULT_INITIAL_CAPACITY: 해시 인덱스가 적용될 배열의 기본 길이를 설정하기위한 상수LinkedList[] buckets: 해시인덱스가 적용될 배열private int si..
image