본문 바로가기

전체 글

(40)
Redis 이전 프로젝트에서 Redis를 활용해 랭킹 리스트를 구현했었다. 다만 구현은 다른 팀원이 맡아서 이를 이해하기 위해 Redis에 대해 먼저 알아야 겠다는 생각이 들었다. 1. Redis란? Redis(Remote Dictionary Server의 약자)는 인메모리 데이터 스토어로서, 데이터베이스, 캐시 및 메시지 브로커와 같은 다양한 사용 사례에서 널리 사용되는 오픈 소스 소프트웨어이다. Redis는 데이터를 메모리에 저장하기에 읽기 및 쓰기 작업 시 매우 빠른 속도를 보여준다. 이를 활용해서 실시간 응용 프로그램과 캐싱 작업에 많이 쓰인다. 2. Redis의 특징 Redis의 특징은 다음과 같다. 인메모리 데이터 스토어: Redis는 데이터를 디스크가 아닌 메모리에 저장하기 때문에 빠른 데이터 액세스가..
MySQL에 csv 파일 등록 python을 이용해서 테스트 목적으로 쓸 db 파일 엑셀 형태로 작성했다. 대량의 데이터가 필요해서 100만 건을 생성했는데, 양이 커서 세이브 로드에 시간이 꽤 걸린다. 이를 csv 파일로 만들어서 MySQL에 등록하고자 하였다. 1. import records 버튼을 사용하기 등록하고자 하는 데이터의 테이블을 불러왔을 때, 데이터를 저장할 수 있어 보이는 아이콘이 있었다. 아이콘을 가져다 대니 import records from external file 이라는 문구가 내 예상이 옳았음을 알려주었다. 그 왼쪽에 있는 버튼은 테이블의 데이터를 csv 파일로 저장해 준다. 그 버튼을 누르면 아래와 같은 창을 볼 수 있다. 입력 가능한 파일의 확장자는 csv, 혹은 json밖에 등록이 되지 않았다. 그 전..
JMeter 그래프 역시 테스트 결과는 숫자로 보는 것이 좋고, 결과가 많으면 많을 수록 숫자는 그래프로 보는 것이 좋다. 똑같이 HTTP 요청 우클릭 - 추가 - 리스너에서 그래프 항목을 몇가지 찾아봤는데, 결과 그래프와 총합 그래프가 있었다. 누가 봐도 우리를 써 주세요 하고 있는 항목이라 둘 다 추가한 다음, 실행해 보았다. 각 색마다 무언가 의미가 있는 것을 볼 수 있는데, 무슨 뜻인지는 잘 모르겠다. 보통 평균, 중간값, 편차 같은 값들은 표본 그룹이 있으면 그 그룹의 데이터들로 계산한 고유의 값인 것으로 알고 있는데, 이 프로그램은 데이터 하나가 들어올 때마다 표본을 집계해서 그리는 것으로 보인다. 총합 그래프이다. 그래프라기 보다는 표에 가까운 모습인데, 적어도 어떤 것인지 보기 좋게 표기되고 있는 듯하다. 조..
JMeter 사용해 보기 프로젝트를 하면서 성능 테스트를 위해 JMeter를 사용해 보려고 한다. 테스트 전 JMeter의 사용법에 대해 정리하자. 1. JMeter JMeter는 서버가 제공하는 서비스에 대한 성능 측정, 그리고 그 결과를 보여주는 테스트 툴이다. 서버가 얼만큼의 요청을 처리할 수 있는지를 확인하고 싶을 때 사용한다. 2. JMeter 설치 방법 JMeter는 아래 링크에서 다운로드할 수 있다. Apache JMeter - Download Apache JMeter 네모 표기된 파일을 다운로드한 후, 압축을 해제한다. 압축을 해제하면 폴더가 하나 생성되는데, 그 폴더 안에 있는 bin 폴더를 연 후, jaz를 실행해 창을 열 수 있다. 3. JMeter 사용해 보기 창을 열면 아래와 같은 창을 볼 수 있다. In..
2023.08.28 TIL - 3계층 구조 1. 3계층 구조(3 Layer Architecture) 이전에 생성했던 Memo의 경우 Controller를 통해 데이터 송/수신 및 데이터 처리가 모두 이루어진다. 이 프로젝트의 경우 구조가 그리 복잡하지 않기에 알아보기 쉽지만, 이것들이 복잡해질 경우 알아보기 점점 힘들어진다는 단점이 있다. 이런 문제를 해결하기 위해, Controller, Service, Repository 3가지의 처리 역할을 통해 각 역할을 분리하였다. Controller : 클라이언트의 요청을 받는 역할이다. 요청에 대한 처리는 Service에 일임하고, 받아온 request 데이터가 있다면 함께 넘겨주며, Service에서 처리된 데이터를 클라이언트에 넘겨주는 역할을 한다. Service : 사용자의 요구 사항을 처리하는 ..
2023.08.27 TIL - Spring 1. Spring Spring은 데이터 통신을 위한 자바 프레임워크이다. 프로젝트 생성 시 스프링을 선택할 경우 main 메소드에 자동으로 스프링이 톰캣 서버를 연동해 데이터 통신을 할 수 있게 해 준다. 데이터 통신을 위한 http 메소드 4가지를 학습했다. GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 DELETE: 리소스 삭제 Spring에서는 이들을 각각 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 어노테이션을 통해 쉽게 사용할 수 있게 만들어 준다. 이들은 컨트롤러를 통해 제어되는데, 이 또한 Controller 어노테이션을 활용하면 클래스를 컨트롤러로 활용할 수 있다..
2주차 WIL 2주차가 종료되었다. 첫 4일은 알고리즘 문제를 지속적으로 풀어봄으로써 자바와 알고리즘에 대해 익숙해 지는 시간을 가졌다. stream과 map, filter를 이용해 여러 자료 구조를 간단한 코드로 수정하면서 stream에 대해 더 익숙해 질 수 있었다. 문제 중 1개 문제에서 stream을 사용했을 때 소요 시간이 늘어나 시간 초과가 되어 이에 대해 물어보았는데, 아직까지는 우리 레벨에서 시간 문제를 일으킬 정도로 stream을 사용하지는 않았을 것이라며 다중 반복문을 실행한 것일 확률이 높다는 답변을 받았었다. 끝 2일은 Spring에 대한 내용을 학습했다. Spring은 자바를 통해 인터넷 데이터를 주고 받을 수 있는 프레임워크이다. 자바 외부 확장자를 통해 다운로드 받을 수 있으며, build...
2023.08.25 TIL - Lombok 1. Gradle 이란? Gradle은 자바의 빌드 자동화 시스템이다. 빌드라는 것은 소스 코드를 실행 가능한 파일로 만드는 과정을 뜻하는데, gradle은 우리가 작성한 Java 소스 코드를 설정에 맞게 자동으로 빌드해 실행 가능한 jar 파일로 만들어 준다. build.gradle은 gradle 기반의 빌드 스크립트이다. 이 스크립트를 작성하여 프로젝트의 라이브러리 의존성을 관리하고, 소스 코드를 빌드할 수 있다. 해당 스크립트의 dependencies 부분에 외부 라이브러리를 작성하면 Gradle이 이를 확인한 후 라이브러리들을 모아둔 외부 저장소에서 자동으로 다운로드해 준다. 라이브러리 간 의존성을 자동으로 관리해 주기에 충돌 걱정이 없다는데, 이 부분은 무슨 뜻인지 이해가 되지 않았다. Exte..