*경험한 기술로 정리하였습니다
*웹사이트 셧아웃 이슈로 클라이언트의 데이터 증발이슈 
네트워크 문제로 튕김, 답안 임의변경 등 문제에 대해 서버가 실시간으로 답안을 받아야 한다고 판단되어 암호화하여 일정시간/문제를 풀 때마다 서버에 전송하고 계정에 맞는 데이터 hash값 비교하여 보안과 안정성 높임
*리포팅(pdf) 대량출력에 용이한 시스템 구현 아이디어 
계정당 데이터를 취합하여 수치 통계를 내는 시스템에서 비동기 속도를 빠르게 하기 위해 리포트 문구별 수치 범위 테이블을 만들고 범위에 대한 내용을 클라이언트에 먼저 전달, 서버에서 연산 완료 후 클라이언트에 전달하여 pdf작성 중 딜레이 타임을 줄임 기존 문구 작성을 서버에서 한 로직을 pdf출력 모듈에서 연산문제는 csr으로 서버 부하 줄이는 포팅 
*AWS에서 지원하지 않는 레거시 마이그레이션 해결 방안 
특정 레거시 환경 중 AWS에서 centos6 컨테이너를 제공 않는 문제와 cost와 이식성을 고려하여 레거시 앱을 vm 마이그레이션을 적용
*RasberryPi OS 4g이상 사용할 64bit부재 
2020년 기준으로 32bit OS. 어느 지점에 모든 메모리를 접근할 수 없는 32bit OS이나, 32-bit ARM에서도 LPAE라는 기능을 이용해서 4GB를 초과하는 메모리를 사용
*서버에서 연산 부하 모니터링 확인하여 csr에서 singlton 기법으로 아키텍쳐 변경 
서버 연산에서 연산 후 카테고리, 수치, 텍스트 데이터를 전송하는 방식을 1. 카테고리 기준 범위를 클라이언트에 미리 넘기고 2.서버에서는 수치를 연산하는 동안 3. 텍스트 우선순위를 json으로 변환 후 순서대로 클라이언트에 미리 전송하여 서버 부담을 줄이고 병목현상을 최소화하도록 구조 변경 및 비동기 워커를 적극 활용하되 데드락이 생기지 않도록 연산 순서 해결안 제시
*RDB read replica DB 증설 이슈에 맞는 서비스 찾기 
DB 인스턴스의 용량 한도 이상으로 탄력적으로 확장하여 읽기 중심의 데이터베이스 워크로드를 처리. 특정 소스 DB 인스턴스의 복제본을 여러 개 만들어 여러 데이터 사본이 요청하는 높은 애플리케이션 읽기 트래픽도 처리
*bastion server 서브넷 서버에 접근할 수 있는 방어 기술에 대한 아이디어 
Public Subnet으로 공개적으로 접근할 수 있는 subnet의 서버에 접근 할 수 있도록 연계 서버 계정 액세스 로그들을 한곳에서 취합 및 제어하여 관리가 보다 용이하므로 제안
*spring 동시접속, 보안 서비스 주입 이슈에 대해 제시안 
springSecurity는 filter 흐름에 따라 처리하므로 Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받기에 cloud bastion서버에서 바로 받는 데이터 또는 router, 보안대응에 적합한 서비스에 적용 제안
*spring Interceptor 사용으로 controller전에서 캐치로 비즈니스 로직 바로 전에 활용할 서비스 이슈 대응 제안 
dispatcher와 controller사이에 위치하여 로그인 안한 유저가 접속할 때 로그인 페이지로 이동을 interceptor기능으로 사용 제안
*spring 쓰레드로 연산속도 튜닝시 spring(java) 라이브러리로 ExecutorService 활용 제안 
Runnable 과 Callable을 상속하여 ExecutorService로 threadpool을 구현 사용하며, CachedThreadPool 설정 이슈(삭제되는 쓰레드보다 생성 쓰레드가 더 많아지는 이슈)에 FixedThreadPool 사용과 newWorkStealingPool 활용가능한 코어 갯수에 대응하는 쓰레드 도입 고려 제안
*fastapi DB 엑세스 비동기처리가 안되어 블록킹 발생 이슈 
SQLAlchemy의 asyncpg 을 활용하여 create 함수, DB처리 함수를 사용하여 처리
*nest.js 응답시간 개선을 위한 캐시인터셉터 구성 중 핸들러 미호출 
Rxjs에서 새로운 스트림 반환하여 경로 핸들로 호출안되는 문제로 reflector로 커스텀 데코레이터 만들어 사용
*인코딩 추측으로 사이트 깨지는 이슈 
사이트의 인코딩이 깨지는 부분에 대해 Response객체의 인코딩 추측하지 않도록하여 순수 문자열 읽고 text속성으로 작업 진행
*SSR 인터랙션 이슈를 최소화 
인터렉션 단차 발생하는 페이지에 로딩 페이지(이모티콘과 서비스 안내)를 추가하고, 자주 사용하는 로직을 분할하여 view를 먼저 출력하도록 변경하였고, 이미지를 마지막에 로딩하도록 lazyload 실행  
*레이턴시 동기화가 어긋남을 확인하여 리턴시간 측정으로 네트워크 전송 동기화를 해결 제안 
A장비에서 B장비를 향하여 패킷을 보냄. B장비는 받은 패킷을 다시 A장비로 되돌려 보내고 A장비는 보낸 시간과 받은 시간을 남김. 이와 같은 로그 남기기 제안
Back to Top