현재 msa를 수강중에 있는데 다른 용어들은 들어봤었지만 서킷 브레이커는 처음 들어봤다.인터넷에 찾아보니 서킷 브레이커는 회로 차단기라고 한다. 서킷 브레이커는 서비스간의 호출을 감지하고 시스템의 안정성을 유지한다는 거라고 한다.MSA가 각 서비스를 모듈로 각각 만드는건데..그렇다는건 그냥 500에러를 뱉어서 처리를 할 수 도 있겠지만 그렇게 되면 안정성과 거리가 멀어진다.애초에 이렇게 만들꺼면 msa를 왜 하는지 모르겠다.암튼, 서킷 브레이커는 서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지를 하는거라고 한다.아까 사전적 정의가 회로 차단기라고 했는데여기서는 회로가 무엇을 말하는 걸까?그리고 무엇을 차단한다는 걸까?그러니까 서비스끼리 전파가 회로구그거에 대한 차단을 말하는 거였다!!결..
자바에는 String이라는 문자열이 있습니다. String은 객체로 기본적으로 힙메모리에 저장이 되어집니다.그니까 String을 생성하게 되면 힙메모리에 저장이 되어집니다. 보통 객체를 만들때 new 객체();이렇게 만듭니다. 하지만 String은 이렇게 만들지 않습니다. String같은 경우는 String a = "리터럴"; 이렇게 만듭니다. String뿐만 아니라 기본형 변수(int,long...)을 가진 모든 참조형은 위 방식으로 생성 할 수 있습니다.이를 우리는 초기화라고 부를 수 있습니다. 그니까 자바에는 String객체를 초기화하는 방법이 2가지가 존재합니다.new String()으로 초기화String a = "이런걸 리터럴 이라고 부릅니다.";그렇다면 어떤 차이가 있을까요? 위에서 객체는 힙..
msa는 하나의 독립적인 서비스를 분리하여 개발하는 것을 말합니다.이는 하나의 스타일이며 권고 사항은 아닙니다.MAS는 다음과 같은 특징을 가지고 있습니다. 1. 독립적 배포 : 각 서비스 마다 개발이 가능하기 때문에 독립적으로 배포가 가능합니다. 만약 모놀로식으로 개발하게 된다면 하나의 서비스를 개발하고 배포를 해야 한다면, 개발이 되지 않는 서비스들도 함께 배포를 해야 합니다.2. 유연성 증가 : 유연성이 증가한다는 건 각자의 서비스마다 다른 스타일로 개발이 가능하다는 점에서 유연성이 증가하게 되어집니다.3. 확장성 : 이 특징같은 경우 특정 서비스를 고도화를 한다고 생각했을때, 좀더 체계적으로 개발할 수 잇다는 특징을 가지고 있습니다.하지만 단점도 존재합니다.1. 복잡성 증가 : 복잡도가 증가하다..
해싱이 무엇인가?검색 키가 주어진 데이터 레코드를 빠르게 찾는 데 사용되는 기술어떻게?해시 함수를 사용하여 입력(또는 중요)을 고유한 해시 코드로 변환해시 코드는 해당 키와 연관된 데이터가 해시 테이블에 저장되는 인덱스를 결정해시 코드가 데이터 위치를 직접 가리키기 때문에 빠른 데이터 검색이 가능비밀번호 password123 → 해시 함수를 이용해서 해시 코드로 변환→ 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8→ 비밀번호 (password123:5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8)내가 password123을 사용하고 싶으면5e884898da2804715..
java를 학습하게 되면 어떤것이 중요할까?객체지향도 중요하지만, java가 어떤것인지도 굉장히 중요하다.그니까 java가 어떤식으로 코드를 읽는지 그런것도 중요하다는거다.물론 나는 "코딩만 하고 살거야"(취미면) 그러면 이 내용은 중요하지 않을 수 있다.하지만 개발자로 일할려면 이 정도는 깊게는 아니어도 어느 정도는 이해도가 있어야 된다.그래야 java가 특정한 문제가 발생하였을때 쉽게 접근 할 수 있다고 생각한다. 예를 들어 메모리 문제가 발생하면 코드를 수정하는것도 좋지만 jvm의 메모리 사양을 변경시키는 것만으로도 충분히 해결 할 수 있다.그러면 몇시간 동안 해결해야될일을 5초면 해결 할 수 있다. 이 내용을 모르면 인터넷에 검색하고 그걸 반영해야 할거다. 하지만 이거에 대해 이해를 하지 못한다면..