
생각 보다 많은 오류가 났던 pm2적용시키기.. 그래도 다음엔 같은 오류가 나지 않게 하기 위해 한번 오늘 겪었던 모든 오류와 생각을 정리해봤다. 일단 pm2를 AWS의 EC2에서는 사용하여 서버를 끄더라도 계속 작동이 되도록 사용해 보았다. 하지만 어느 회사던지 하나의 서버로만 작동하진 않는다. 그래서 우리는 서버를 분산하여 데이터의 과부화라던지 성능면에서 좀더 나은 향상을 바라야 한다. 그래서 우리는 노드환경에서 사용할수 있는 PM2를 사용해본다. 일단 yarn패키지를 사용하고 있으므로 yarn 기준으로 한다. npm패키지 같은 경우는 여러곳에서 많이 사용하므로 구글링을 해보면 바로 나온다. 패키지 다운로드 // yarn패키지 yarn global add pm2 // npm패키지 npm i pm2 -..

문제 인증 미들웨어를 만들고 사용하려고했다. 이렇게 정의해두고 서버를 시작하면 Route.get() requires a callback function but got a [object Undefined] 이런 에러가 뜬다. 에러를 해석해보면 Route.get()에는 콜백 함수가 필요하지만 [객체 정의되지 않음]. 이게 뭔소린지 이해하면서 코드를 봤더니 엄청난 실수를 했다. AuthController 객체를 가져와놓고 인스턴스 생성을 하지 않았다. 해결 인스턴스 생성후 생성한 인스턴스로 바꿔주었다. 해결완료!!

문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이 2인 무..

유닛 테스트 코드 오류 예시 설명 repositories 1. User Repository Unit Test 테스트하려는 테스트스위트 4가지가 정의 되어 있고 나머지는 통과가 됬는데 updateToken Method테스트에서 실패를 했다라는걸 간략하게 보여줌 2. User Repository Unit Test > updateToken Method 해당 테스트에서 에러가 난걸 강조해서 보여준다. 3. expect(received).toBe(expected) 둘을 서로 비교해주는 메서드인걸 주석으로 알려주며 아래의 예상값과 현재값이 담겨있다. Expected의 예상값은 "upload refreshToken" Received의 현재값은 {} 즉, 실패한 원인을 알려주고 어느 위치에서 에러가 낫는지도 친절하게 ..

AWS S3( Simple Storage Service ) 이란? ■ 업계 최고의 확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스이다. ■ 웹 사이트, 모바일 어플리케이션, IoT 디바이스, 빅데이터 분석등 다양한 사용 사례에서 원하는 만큼 데이터를 저장및 보호가능하다. ■ 사용하기 쉬운 관리 기능을 제공한다. ■ 특정 비즈니스 조직 및 규정 준수 요구 사항에 따라 데이터를 조직화, 세부적인 액세스 제어를 구성 ■ Bucket이라는 단위로 구분한다 ■ 99.99999%의 데이터 내구성을 가지고 있어 장애나 오류, 위협에 강하. S3 사용 목적 ● 용량을 추가하거나 성능을 높이는 작업이 필요없이 저장 용량이 무한대이고 파일저장에 최적화한다. ● EC2와 EBS등에 비해 훨씬 저렴(저..
동시성(Concurrency)이란? • 여러 클라이언트가 동시에 하나의 데이터를 사용 및 공유하는 것을 뜻합니다. • 다수의 사용자가 동일한 시스템을 공유하면서 발생하는 동시 접근 문제를 해결해야합니다. 동시성문제 (Concurrency Issue) 동시성 문제는 여러 클라이언트가 동시에 같은 데이터를 접근하려고 할때 발생합니다. 🔖 예시 철수가 은행에 가서 총잔액 10,000인 A계좌를 통해 1,000원을 인출하였습니다. (10,000원 → 9,000원 커밋X) 같은시간 민수가 은행에가서 철수와 같은시간에 A계좌에서 1000원을 인출하였습니다. (9,000원 → 8,000원) 철수가 인출했을 당시에는 9,000원이였지만 8,000원으로 되어 있는 에러가 발생하여 Rollback하였습니다.(10,000원..
트랜잭션(Transaction)이란? 데이터베이스에서 하나의 논리적인 기능을 수행하기 위한 작업단위이며, 데이터베이스 관련연산의 가장 기본적인 단위입니다. 즉, 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위입니다. 데이터베이스의 상태를 변화시킨다 라는 말은 SQL 질의어를 이용해 데이터베이스를 접근하는 것을 의미합니다. SQL질의어 - SELECT, INSERT, DELETE, UPDATE 작업의 단위는 질의어 한문장이 아닙니다. 작업의 단위를 하나의 쿼리에 종속하는 것이 아닌 작업 단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미합니다. 즉, 여러개의 작업(쿼리)을 묶어 하나의 작업 단위로 그룹화 하여 처리하는 작업을 뜻합니다. ex) 게시판 사용자는 게시글을 작..

Access Token Access Token은 사용자의 인증이 완료된 후 해당 사용자를 인증하는 용도로 발급하는 토큰입니다. Access Token에는 사용자인증의 필요한 모든 Secret 한 정보가 JWT형태로 들어있습니다. 만약 탈취를 당하게 된다면 서버는 탈취된 토큰인지 알지못해 피해가 커질수 있습니다. 그렇기 때문에 피해를 최소화 하기위해 만료시간을 최소화 해야합니다. Refresh Token Refresh Token은 Access Token을 발급받기 위한 목적으로 사용하는 토큰입니다. Refresh Token은 사용자의 인증 정보를 검증하는데 사용되며, 이를 서버에서 관리합니다. 서버는 Refresh Token을 디코딩하여 사용자의 정보를 확인하고 사용자의 인증상태를 언제든지 서버에서 제어할..