| Spring Cloud Bus 분산 시스템의 노드(Microservice)를 경량 메시지 브로커와 연결 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast) WHY config가 변경되면 각 마이크로서비스는 최신 값을 갖고 오기 위해 POST로 http[s]://{microservice host}/actuator/refresh를 해줘야 한다. 물론 이 작업을 자동화할 수도 있겠으나, config server가 각 마이크로서비스의 주소를 모두 관리해야 하니 비효율적입니다. Spring cloud bus는 동적으로 config 변경을 적용하기 위한 MQ(Message Queue) Handler 이다. HOW MQ(Message Queue)에 Publisher(=config serve..
Spring Security 프레임워크와 JsonWebToken 을 이용해 웹인증을 구현하는 도중, 로그인을 시도해서 서버로부터 토큰을 얻으려고 할때, 웹서버 로그에 다음과 같은 에러가 발생했습니다. javax/xml/bind/DatatypeConverter해당 문제 발생 시 pom.xml에 아래의 라이브러리를 추가해주면 된다. javax.xml.bind jaxb-api 2.1
람다 1. 함수형 프로그래밍과 람다식 자바는 객체 지향 프로그래밍 : 기능을 수행하긴 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식 함수형 프로그래밍(Functional Programming: FP) 함수형 프로그래밍은 순수함수(pure function)를 구현하고 호출함으로써 외부 자료에 부수적인 영향(side effect)를 주지 않도록 구현하는 방식입니다. 순수 함수란 매개변수만을 사용하여 만드는 함수 입니다. 즉, 함수 내부에서 함수 외부에 있는 변수를 사용하지 않아 함수가 수행되더라도 외부에는 영향을 주지 않습니다. 함수를 기반으로 하는 프로그래밍이고 입력받는 자료 이외에 외부 자료를 사용하지 않아 ..
컴파일(Compile)과 런타임(Runtime) 1) 컴파일(Compile)이란? 개발자가 프로그램을 위해 작성한 소스코드를 다른 프로그램이나 기계(H/W)가 처리하기 용이한 형태로 바꾸는 과정을 말한다. 컴파일 에러 컴파일 에러는 프로그램이 컴파일링되는 과정에서 발생하는 에러로 일반적으로 컴파일 에러 발생시 컴파일러는 문제를 일으킨 소스코드라인을 지적해준다. Syntax Error Type 체크 에러 파일 참조 오류 2) 런타임(Runtime)이란? 컴파일 과정을 마친 컴퓨터 프로그램이 실행되고 있는 환경 또는 동작되는 동안의 시간을 말한다. 런타임 에러 소스코드가 이미 실행가능한 프로그램으로 성공적으로 컴파일이 되었더라도 여전히 프로그램의 실행중에 버그를 일으킬 수 있다. 이렇게 프로그램의 실행중에 ..
equals()메서드 두 인스턴스의 주소 값을 비교하여 true/false 반환 인스턴스가 다르다라도 논리적으로 동일한 경우 true 반환하도록 재정의 할 수 있음 hashCode()메서드 hasCode()는 인스턴스의 저장 주소를 반환함 힙메모리에 인스턴스가 저장되는 방식이 hash 방식 hash: 정보를 저장, 검색하는 자료구조 자료의 특정 값(키 값)에 대한 저장 위치를 반환해주는 해시 함수를 사용 Student Lee = new Student(100, "kkk"); Student Lee2 = Lee; Student Shun = new Student(100, "kkk"); System.out.println("Lee.hashCode() - " + Lee.hashCode()); // 1784662007..
(여의도 63빌딩) 푸드코트 푸드키친거의 10년만에 방문한 63빌딩!!수족관 방문하기 전 배가고파서 푸드코드로 향했다!평일이라 그런지 사람이 많지않았다.그리고 내부가 굉장히 넓다.달걀후라이를 무료로 직접 해먹을 수 있다.서비스 굿!!키즈메뉴콩비지 세트김치찌개 세트 가격에 비해 메뉴 구성이 굉장히 좋다!!굿뜨!!
fetch 활용 수강생 명단 student-2.json [ { "name" : "도레미", "major" : "컴퓨터 공학", "grade" : 2 }, { "name" : "백두산", "major" : "철학과", "grade" : 1 }, { "name" : "홍길동", "major" : "국문학과", "grade" : 3 } ] JS fetch('student-2.json') .then(response => response.json()) .then(json => { let output= ""; json.forEach(student => { output += ` ${student.name} 전공: ${student.major} 학년: ${student.grade} `; }); document.quer..
Javascript만을 활용한 스타일 변경 예제 예제 title 클릭 시 글씨 변경 이미지 클릭 시 다른 이미지로 변경 My Profile 이름 : 도레미 주소 : somewhere 연락처 : 1234-5678 const title = document.querySelector("#title"); const pfImg = document.querySelector("#profile img"); title.onclick = () => (title.innerHTML = "프로필"); pfImg.onclick = () => (pfImg.src = "images/pf2.png");
프로미스란 콜백을 사용했을 때의 복잡함을 피하기 위해, ES6부터 "프로미스(promise)" 등장 프로미스는 객체를 생성(제작)하는 부분과소비하는 부분으로 나뉜다. 프로미스 제작 코드에서 '성공'과 '실패'를 확인한 후 소비 코드로 알려준다 프로미스 체이닝 then()을 사용해 여러 개의 프로미스를 연결하는 것을 '프로미스 체이닝' 이라고 한다. 프로미스는 resolve와 reject를 사용해서 성공과 실패에 대한 동작을 명확하게 구별할 수 있고, 함수에 계속해서 함수를 포함시키지 않기 때문에 콜백 지옥을 벗어날 수 있는 좋은 방법이다. 예) A,B,C 각 실행 시간이 다르지만 A작업이 끝날 때까지 기다렸다가 B작업을 하고, 다시 B작업이 끝날 때 까지 기다렸다가 C작업을 해아 한다면? 프로미스 체이닝..
코틀린의 변수는 초기값을 보고 타입을 추론하며, 기본 타입들 간의 변환은 명시적으로 이루어진다. 코틀린에서는 is, !is, as, as? 를 이용해 타입을 확인하고 캐스팅한다 Any는 Java의 Object와 같은 최상위 타입이다. Unit은 Java의 void와 동일하다 Nothing은 정상적으로 끝나지 않는 함수의 반환을 의미한다 1.기본타입 코틀린에서는 선언된 기본값을 보고 타입을 추론한다 Java는 기본 타입간의 변환은 암시적으로 이루어질 수 있다. kotlin은 기본 타입간의 변환은 명시적으로 이루어져야 한다. 코틀린에서 타입 변환을 하기 위해서는 명시적으로 to변환을 사용해야 한다. fun main() { val number1 = 3 val number2: Long = number1.toLo..
Java -> Kotlin public boolean startsWithA1(String str) { if (str == null) { throw new IllegalArgumentException("null이 들어왔습니다"); } return str.startsWith("A"); } fun startsWith(str: String?) : Boolean { return str?.startsWith("A") ?: throw java.lang.IllegalArgumentException("null이 들어왔습니다.") }Java -> Kotlin public Boolean startsWithA2(String str) { if (str == null) { return null; } return str.start..
(수서역) 돼지불고기전문 "작은집" 오늘의 점심은 돼지불고기전문이지만 생선구이를 더 많이 먹는 그곳 "작은집" 이다. 목살김치찌개와 삼치구이 둘 중에 고민을 하다...... 삼치구이 콜! 기본반찬들이다. 집에서 먹는 느낌이 많이 든다. 삼치구이가 잘 구어져 나왔다. 밥 한 그릇 뚝딱 완료!