본문 바로가기

전체 글

(730)
[ELK] 1. Elastic Search ELK 관련 로그 저장 관리 스택에 대해서 알아보자 Elastic Search, Logstash, Kibana 이렇게 3개의 스택에 대해서 해당 ELK 스택이라고 표기되고 사용된다. 사용목적은 데이터 분석 스택이고, 해당 데이터 분석 을 통해서 여러가지 운영 상 이점을 얻을 수 있다. 당연히 운영 시스템에서는 많은 로그들이 발생되고 이슈추적이나 뭐 여러가지의 이유로 해당 로그는 굉장히 중요하다 * Elastic Search 해당 엘라스틱 서치는 Apache Lucene 기반의 기술이다. 해당 엘라스틱 서치는 가진 데이터 중, 특정 키워드를 가진 데이터를 찾을수 있는 , 특정 데이터 검색을 지원해준다. 아래와 같은 특징들을 가진다. 1. 역 인덱싱 엘라스틱 서치는 문서 기반으로 저장되는 ELK의 스택중 어..
[JPA] ModelMapper 관련 공부 최근 사이드 프로젝트를 계속 진행하면서, 뭔가를 정리할 시간이 없었다... 뭔가 알고는 있었지만 계속 찾아서 써먹는 ModelMapper에 대해서 정리를 해보려고한다. 잘알다 싶이, JPA에서 사용하는 Entity는 DTO로 사용하면 절대 안된다. 쉽게 얘기하면, DB layer와 view layer에서 각각 엔티티와 DTO를 다르게 사용해야한다. 이유는 다양하지만, JPA특성상 엔티티의 값을 set하고, save하면 자동으로 디비 쿼리가 나가기 때문에가 가장 크다고 생각한다. Entity를 Dto처럼 쓴다면, 추후 운영 상에 디비에 대한 정보를 의도치 않게 바꿀수 있다. 그래서 Entity와 Dto를 분리해야하는데, Entity로 정보를 얻고, 이걸 Dto로 변환하려면 어떻게 해야할까? ModelMap..
[Spring] 간단한 지식... mybatis Camel 변환 Mybatis를 쓰다가, 대부분 모델 ResultMap으로 사용해서 쓰는데 뭔가 간단하고 단순히 매번 모델을 만들어서 ResultMap으로 꾸리기 귀찮다. 예를 들면 바인딩.... 솔직히 매번 모델 만들기 너무 귀찮다.... 그래서 찾아보니.. parameterType="java.util.Map" resultType="kr.co.esjee.icedu.util.CamelListMap" 요 녀석이 있다. 이 녀석이 뭐냐? 디비에서 컬럼을 카멜이름으로 바꿔서 ListMap으로 resutl 해주는것이다. 예를 들어서 RESULT_MAP 이라는 컬럼을 select로 뽑으면, resultMap으로 바꿔서 Map 결과로 바꿔주는 것이다. 은근히... 사용할일이 많고, 편하다 카멜 케이스도 거의 모든 곳에서 표준이니...
[Spring] Memcached 적용 사례 무료로 사용할 수 있는 오픈소스이며, 분산 메모리 캐싱 시스템 DB나 API 호출 또는 렌더링 등에서 받아오는 결과 데이터를 작은 key-value 형태로 메모리에 저장하는 방식 1)장점 필요량 보다 많은 메모리를 가졌을때 시스템으로부터 메모리를 사용하고, 필요로하는 메모리가 부족한 경우 이를 쉽게 더 가져다 사용할 수 있도록 만들어준다. 위 두가지는 memcache를 사용하고, 안하고에 따라 다른 것이다. 사용하지 않는 경우, 각 웹서버가 분리된 메모리에서 할당된 크기만큼 사용할 수 있지만 memcache를 사용하는 경우는 논리적 결합으로 인해 각 웹서버는 전체 메모리캐시만큼 용량을 사용할 수 있다. 메모리 캐시를 사용하는 경우, 모든 서버는 동일한 가상 메모리 풀을 공유한다. 특정항목이 주어졌을때, ..
성능테스트 도구 Jmeter Jmeter를 예전에 실무로 궁금해서 프로젝트 오픈전에 써봤는데. 정리를 못했다. 정리할겸 다시 로컬에 설치하면서 정리를해보자 우선 homebrew로 다운받자 brew install jmeter하면 걍 땡겨온다 ㅋ 설치 경로는 각 다른데 나는 /opt/homebrew/Cellar/jmeter/5.5/bin 여기에 설치가 되었다. open jmeter로 열어주고~ 쓰레드 그룹을 생성한다. Number of Threads 는 10명(동시 접속, 쓰레드 생성수) Ramp-up period 는 반복 초, 1초에 한번 Loop Count는 100번 반복 즉 10명의 사용자가 1초에 한번씩 100번반복한다. Http request로, 별도 토이프로젝트를 콜한다. 나는 TPS위주로 볼거라서, 외부 라이브러리르 다운받..
[성능 테스트] 성능테스트 시작해볼까... 성능 테스트를 시작해보려고한다.. 가끔 그런생각을 한다. 무슨 툴이나 무슨 장비.. 무슨 서비스에 무작정 트래픽을 때려보고싶을때가 예를 들면 토이프로젝트나, 친구들끼리 한 프로젝트에다가 그냥 무작정 때려보고도 싶고 ㅋㅋ 내가 싸이코인가 무튼! 근래 공부하고싶었던 목록중 하나여서 개발하다가 하루에 한시간,두시간정도 할애해서 해보려고한다. 성능테스트하고, TPS,request 측정등.. 뭐 다양하게 볼수 있는 지표도 물론 성능테스트에서 같이 시작... 이 글은 서론 겸...뭐... 시작은 redis vs memcached로 해야겠다. 새로 옮긴 회사에서 둘의 차이에 대해서 발표하는 자리가 있는데... 사실 이론적인건 다 알고있는데.. 그건 구글링해도 나오니...각자 공부하는걸로 하고 간단한 이론 + 실습을 ..
[Spring] 기본 화면 변경_대기화면 기능 완료 우선 구조를 살짝 바꿨다. 인터셉터는 그대로두고 한 메서드에서 로그인 하면 Admin type 에 따라서, 다른 view를 띄워주는 방식으로 모델부분이다. SuperAdmin과 NormalAdmin의 두 부분을 나눠서 make하였다. 생성자를 별도로 만들지 않은 이유, 빌더를 만들지 않은 이유는 JPA에서는 메서드명을 생각없이 지으면 나중에 운영관리하기 빡세기 때문,... 무튼 이제 두가지 화면을 구성해야한다. 1. NormalAdmin으로 사용자 정보를받아서, 디비에 넣는것 2. SuperAdmin으로 들어가면, 사용자 정보에 맞춰서 버튼 누르면 다음 사람에게 알림톡 나가는 것 1번부터 해보자 우선 등록을 완료하면, 등록이 완료한다. User에서 statCd 별로 유저를 관리하고 입장전 10. 입장 후..
[Spring] 기본 화면 구성 우선, 요새 회사출근과 기타등등 .. 너무 힘든 개인 업무가 많았어서 잠시 프로젝트를 쉬었다.. 공부도 쉬고... 다시 해보자... 우선 화면 단의 기초 개발 구성이 필요하다. 늘 반복하는거지만 기본적인 화면 구성을 해보자 우선 로그인 컨트롤러다. 위와 같이 로그인 컨트롤러를구현하여, view에서 로그인 호출 로직을 콜하자 성공하면 쿠키에 값을 넣자, 이는 인터셉터에서 체크하기 위함이다. 물론 redis에 넣거나,세션에 넣거나 세션에 넣고 redis에서 키를 관리하는게 일반적이지만 우선은 서비스를 다 만들고 차차 한모듈씩 업그레이드 하는걸로... 위와 같은 방식으로 로그인 체크를 하고, return 해주도록하자 아주 간단하게.. 우선은 구현을 해보자 성공적으로 화면이 돌아간것을 확인했고, 이제 쿠키의 값..