[해내기] 운영 에러 대응을 위해 GUID(Global Unique ID)를 채번하자

MSA 환경에서의 운영 IT 서비스가 커지면 > 서버가 쪼개지고 > 조직이 생겨난다. 조직 간에는 알력 다툼이 있고, 조직원은 웬만하면 일하기 싫어한다. 이러한 조직 + MSA 환경에서 에러가 터진다면 어떨까? 웬만하면 에러를 해결하려 들지 않고 책임을 떠넘기려 한다

2023년 6월 5일
·
0개의 댓글
·
post-thumbnail

[해내기] 인터페이스와 async 통신을 활용해 응답 시간을 단축하자

was로 들어온 request는 톰캣 큐에 쌓인다. 그런데 톰캣 queue의 캐파보다 더 많은 request가 들어온다면? was가 터질 수 있다. 이러한 문제를 방지하기 위해 was와 request queue를 분리할 필요가 있다. 더하여, 인터페이스에 대한 요건이

2023년 4월 2일
·
0개의 댓글
·
post-thumbnail

[해내기] MSA 환경에서는 트랜잭션 롤백을 고려해 서비스를 구현해야 한다

운영 정책이라는 건 유행이 있다. 예전에는 통합이 유행이었고, 요즘에는 잘게 쪼개는 게 유행이다. 잘게 쪼갰을 때 장점은 프로그램 수정 시 영향도를 분리하고, 발빠르게 수정이 가능하다는 점이다. 단점은 변경점이 많고, 관리 포인트가 늘어난다. 그래서 쪼갤 때 어디까지

2023년 4월 2일
·
0개의 댓글
·

[이펙티브자바] 52강. overloading은 신중히 사용하라

overriding (재정의) 부모의 메소드를 재정의한다. 런타임에 선택된다.overloading (다중정의) 이름은 같지만 매개변수 유형이 다르거나, 이름은 같지만 매개변수 개수가 다른 메소드이다. 매개변수 개수가 같은 경우 어떤 메소드가 호출될지 헷갈린다.

2023년 3월 26일
·
0개의 댓글
·

[이펙티브자바] 50강. 가변객체의 방어적 복사본을 만들라

가변 객체내부 상태가 변경 가능한 객체멀티 스레드 환경에서 사용하려면 별도의 동기화 처리가 필요함ex) ArrayList, HashMap, StringBuilder, StringBuffer불변 객체내부 상태를 변경할 수 없는 객체멀티 스레드 환경에서도 안전하게 사용 가

2023년 3월 19일
·
0개의 댓글
·
post-thumbnail

[이펙티브자바] 48강. 스트림 병렬화는 주의해서 적용하라

동시성 프로그래밍이란,

2023년 3월 12일
·
0개의 댓글
·

[해내기] 코드값을 관리하자

코드값의 대표적인 예시는 jwt의 만료시간, error code와 메시지 등이 있다. 규모가 작을 때는 static 변수에 담거나, enum 값으로 관리했었다.1) JwtProperties 클래스를 만들고 static 변수에 담았다2) 관계가 있는 경우에는, enum

2023년 3월 4일
·
0개의 댓글
·
post-thumbnail

[해내기] CORS를 이해하고 플젝에 적용하기

SOP의 필요성OriginSOPCORSOrigin = PROTOCOL + HOST + PORTSOP란, 브라우저는 다른 도메인의 리소스를 차단하겠다는 정책이다.http는 stateless한 바보니까, 요청이 들어오면 죄다 처리한다. 그래서 (www.mybank.com)

2023년 2월 26일
·
0개의 댓글
·

[해내기] postman으로 테스트와 소통을 원활하게 하기

API를 개발할 때에 uri, request data, response data 등을 사전에 협의해야 한다. 우리는 기획 단계에서 API 명세서를 작성했다.맡은 API를 개발하면 로컬에서 테스트를 진행했다. 그런데 다른 사람이 개발한 API를 테스트하려면 어떻게 해야할

2022년 11월 20일
·
0개의 댓글
·

[해내기] 아키텍쳐의 중요성을 느끼다

이번 프로젝트에서 가장 어려웠고, 가장 많이 배운 것이다.여태까지는 아키텍쳐의 중요성을 몰랐다. 웹 개발할 때는 서버, 클라이언트, 디비를 두고 AWS에 배포하여 브라우저로 접근하는 것이 숨쉬듯 당연했다.그런데 배경지식이 없는 IoT 프로젝트를 하려니 막막하게 다가왔다

2021년 8월 13일
·
0개의 댓글
·

[해내기] MySQL에서 MariaDB로 바꾸기

라즈베리파이에서 제일 힘들었던 것 두개 중 하나가 DB 설치였다.리눅스 명령어도 익숙하지 않은데다, 설치가 안되면 프로젝트 후반부에 DB를 교체해야 한다는 심적 부담감이 컸다.MySQL 5.7을 설치하기가 정말 어려웠다. MySQL 8.x 버전으로 업그레이드 하자니 인

2021년 8월 13일
·
0개의 댓글
·

M1과 intel은 homebrew 저장소 위치가 다르다

homebrew로 설치한 mysql을 완전히 삭제할 때 아래 코드를 터미널 창에 입력하라고 한다.M1 homebrew는 기존 맥북과 파일트리가 조금 다르다./usr/local 를 /opt/homebrew/ 로 대치해주면 된다.

2021년 8월 13일
·
0개의 댓글
·

28000 Access denied for user ''@'localhost

node.js에 db connection을 하려는데 28000 에러가 떴다.1) .env 파일의 위치가 알맞은지 보자.env 위치는 상대적이다. 형제에 있을 땐 .env 겠지만 삼촌이면 ../env 이렇게2) .env의 변수명 앞에 DB\_를 붙여보자USER는 Wind

2021년 8월 13일
·
0개의 댓글
·