전체 글 (53) 썸네일형 리스트형 Spring Cloud Gateway 기본적인 사용 방법 Spring Cloud 는 기본적으로 Netty를 사용하는 비동기 방식의 웹서버를 지원합니다. Spring Cloud는 기본적으로 yml을 통한 설정과 자바 코드를 통해 설정하는 두 가지 방식을 지원합니다.이번에 알아볼 것은 yml을 통해 사용하는 방법입니다. application.ymlspring: application: name: apigateway-service cloud: gateway: default-filters: - name: AuthFilter args: preLogger: true postLogger: true routes: - id: test-server uri: http:.. MySQL 데이터 복구기 프로젝트를 가오픈 후 테스트 진행 중에 사수가 table을 truncate 해 버렸다.데이터 베이스는 현재 운영중인 데이터 베이스이고 분당 약 2000회 이상의 업데이트가 진행 중 이었습니다.select 쿼리인줄 알고 truncate 문을 작동 시킨게 화근이었다. 나도 안해본 실수 인데 사수분이 실수하여 처음으로 심장 떨리는 일이 생겼다. https://hudi.blog/mysql-pit-recover/ 실수로 MySQL 데이터를 삭제했을 때 바이너리 로그를 통해 복구하기 😱 (PIT 복구)MySQL 바이너리 로그 MySQL에는 바이너리 로그라는 것이 존재한다. 바이너리 로그에는 MySQL에서 데이터베이스에서 테이블 생성, 변경 작업, 데이터 추가, 삭제, 변경 등의 ‘이벤트’가 저장되어 있hudi.b.. 자바 프로세스 메모리 증가 스프링 프로젝트를 진행하는데 서버 사양이 넉넉한 편이 아니었다. 그래서 메모리가 소중한 상황이었는데, 서버를 가동 시킨 후 메모리 사용량이 점점 늘어나는 상황이었다. 최초 실행시에는 약 150mb의 메모리를 점유 하고 있었는데 점점 시간이 지나면서 300mb이상 메모리를 점유하기 시작했던 것이다. 1. 메모리 사용량 분석 방법heapdump 파일 받는 방법확장자는 hprof를 사용합니다../jmap -dump:format=b,file={파일 명} {pid} PID같은 경우에는 ps -ef | grep java를 사용하면 쉽게 가져올 수 있습니다. 메모리 분석 툴 Eclipse Memory Analyzer를 활용하여 누수를 확인 해 보았습니다.설치 링크https://eclipse.dev/mat/downlo.. 자바 멀티 스레드 프로그래밍 기본적으로 자주 사용하는 스프링도 멀티 스레드 프로그램이다. 멀티 스레드와 싱글 스레드의 성능의 차이를 테스트 해볼 예정입니다.자바에서 멀티 스레드 환경 프로그래밍을 하기 위해 Thread클래스와, Runable 인터페이스가 존재합니다.Runable 인터페이스 같은 경우 다른 클래스를 상속받을 수 있기 때문에 상속이 필요한 경우 사용합니다. 테스트에 사용할 로직은 단순한 소수 개수를 구하는 로직입니다.싱글 스레드 환경 테스트 로직package Thread;public class SingleThread { public static void main(String[] args) { SingleThread main = new SingleThread(); long startTime = System.curr.. Java float와 double의 부동소수점 연산 차이 프로그래밍 세계에서 1.1 + 0.1 == 1.2 가 참이지 않고 거짓이다.부동소수점 연산 문제 때문에 거짓이 나오게 됩니다.여기까지는 기존에 알고있던 이야기 였는데 float 자료형일때는 부동소수점 문제가 해결? 된 것 처럼보였다.나는 false가 나올 것을 기대하고 연산을 해봤는데 true가 나왔고 부동 소수점 문제가 발생하지 않았다다른 부동 소수점 연산을 해봐도 동일한 현상을 보여줬다.float자료형보다 double 자료형이 더 큰 수를 표현 할 수 있어서 정확도가 더 높은 지 알고 있었는데 예상 외의 결과가 나타났다. 왜그런지 아시는 분 답글 달아주시면 감사하겠습니다!!이유를 알게되는대로 수정하도록 하겠습니다. C언어 '언젠간 c언어를 쓸일이나 활용할 일이 존재하지 않을까?' 라는 마음에서 c언어를 공부를 시작해보았다. 다른 언어들 예를 들어 Java,Javascript,Python과 같은 언어들이 얼마나 많은 일을 뒤쪽에서 해주고 있는지를 알 수 있었다. 다른 비교적 최근에 나온 언어들에서는 한줄이면 가능 한 것을 c언어에서는 여러줄을 사용해서 구현을 해 줘야한다. 자료구조 또한 표준 라이브러리는 존재하지 않으며 필요할 경우 구현해서 사용하여야 한다. 기본적인 문법에서 c언어와 다른 언어들의 차이점 1. 문자열이 존재하지 않는다 문자열을 저장할때 char타입의 배열에 저장이 되게 된다. int main() { char str[11] = "hello world"; printf("%s",str); return 0; } .. 스프링은 신이고 나는 x신이다. 처음 스프링을 공부할때는 못 느껴봤던 것이었지만 다시 스프링을 보니 이해가 안되는 것이 있었다. "스프링은 어떻게 인터페이스를 객체처럼 사용하는 것인가?" 인터페이스를 활용해서 추상화된 Service 레이어를 사용하는데 어떻게 컨트롤러 단에서 서비스를 호출 할 수 있었던 것인가? 예시를 보자 Controller @RestController public class Controller { @Autowired private Service service; @GetMapping("/") public ResponseEntity Main() throws Exception { String data = service.main(); return ResponseEntity.status(HttpStatus.OK).body(d.. 직접 구현하면서 배우는 http 프로토콜 전체 코드 const PORT = 8080; const IP = "localhost"; const net = require('node:net'); //tcp 연결 요청 const client = net.createConnection(PORT, IP, () => { // GET 메소드 client.write('GET /test HTTP/1.1\r\nHost: localhost:8080\r\nConnection: keep-alive\r\n\r\n'); // POST 메소드 client.write('POST /test HTTP/1.1\r\nHost: localhost:8080\r\nContent-Type: application/json\r\nContent-Length: 14\r\n\r\n{"test":"tes.. 이전 1 2 3 4 5 ··· 7 다음