일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- N+1문제
- .env
- 레포지토리
- 메뉴바 한번에
- 네비게이션 한번에
- 쿼리스트링
- JWT 쓰는 방법
- 환경변수
- 게시글 이미지
- getComputedStyle
- 게시글 이미지 업로드
- 메뉴바
- N+1
- 부트캠프
- JWT
- unnest
- route 53
- secret코드
- 이미지가 포함된 게시글
- JWT 쓰는이유
- 패스파라미터
- 3계층구조
- JSON Web Token
- 스테이지어스
- 포트번호
- Winston
- 알림생성
- element.style
- 알림생성모듈
- 토큰
- Today
- Total
목록전체 글 (142)
기주
프로젝트를 진행하는 도중 필요한 기능이 생겼다. 서비스내에 있는 게임들을 가나다순으로 정렬하여 사용자들에게 보여줘야했다. 하지만 한번에 모든 게임목록들을 가져다 보여주는 것은 게임 수가 많아질 수록 효율성이 떨어진다. 사용자가 한번에 볼 수 있는 게임의 숫자를 적절히 정해서 필요한만큼만 그때그때 보여주는 것이 효율적이다. 게시판에 게시글목록을 볼때도 마찬가지. 그래서 게임목록을 가나다순으로 20개씩 끊어서 보여주기로했고, 페이지네이션을 이용하게되었다 FE는 게임목록을 요청할때 page를 1부터 2, 3, 4... 하나씩 올려가며 요청하면된다. BE는 전달받은 page에 X20을 해서 그만큼을 생략하고( OFFSET ), 추가 20개만 보여주면된다( LIMIT ) **DB의 OFFSET과 LIMIT를 이용..
프로젝트 진행중 티스토리같이 게시글을 쓰는 공간에 유저들이 이미지까지 첨부하는 기능이 필요했다 게시글에 이미지를 업로드하는 기능을 구현해보았다. 이 기능은 일반적으로 프론트엔드로부터 html코드 자체를 넘겨받아 백엔드에서 통째로 저장한다. 이미지의 위치를 이미지 태그의 위치로 기억할 수 있기 때문이다. 백엔드는 게시글 내용을 반환해줄때도 html코드를 통째로 넘겨주면된다. 그리고 이미지 업로드API를 별도로 만들어서 유저가 게시글 작성도중 이미지를 업로드하면, 백엔드는 바로 이미지를S3(혹은 서버)에 저장하고, 그 url을 프론트엔드에 반환해주면된다. 여기서 이미지는 게시글에 업로드하는 순간 바로 S3에 저장되기 때문에 유저가 게시글에 작성도중 이미지를 첨부하고 뒤로가기등을 하여 나가버릴경우, 의미없는 ..
프로젝트 내에서 배너이미지 등록API를 개발하다가 트랜잭션이 필요해져서 구현하게되었다. 배너이미지 등록 API는 [기존 배너이미지 삭제]와 [새로운 배너이미지 등록] 작업이 DB에서 둘다 이루어져야 한다. 만약 [기존 배너이미지] 작업은 성공하고, [새로운 배너이미지 등록] 작업이 실패한다면, 등록된 배너이미지만 사라져 버리 는 문제가 발생한다. 2가지 작업 모두 실패하여 기존 이미지만 남아있게 하기, 2가지 작업 모두 성공하여 기존이미지 삭제후, 새로운 이미지로 대체하기 경우의 수를 이 2가지로 만들기 위해서 트랜잭션을 이용해야했다. 트랜잭션) pool.query('BEGIN'); //트랜잭션 시작지점설정 pool.query('COMMIT'); //트랜잭션 끝나는지점설정 pool.query('ROLLB..
프로젝트 알림기능을 구현하던중, 동시에 여러명에게 알림 데이터를 추가해야하는 상황이 발생했다. 원래 for문을 돌려서 insert문을 회원수만큼 돌리려고했으나 나중에 이것이 비효율적이라는 사실을 알게 되었다. (SELECT문으로 가져온 데이터의 개수만큼 반복문으로 다시 쿼리문을 실행하는 것은 이 작업이 얼마나 오래 걸릴지 가늠 조차할수 없을 정도로 큰 작업이 될 수 있기 때문에 반드시 제약해주는 장치가 있어야한다. Like Bulk Insert) 그러다 Bulk Insert문을 이용해서 한번에 데이터들을 삽입할 수 있다는 것을 알게되어 단일 Insert와 비교해보기로 했다. Bulk Insert) 한번의 Insert문 안에 VALUES를 여러개 넣어주면된다 INSERT INTO films (code, t..
이미지 업로드 기능을 구현하기위해서 IAM 계정 생성 - 액세스키 발급까지 하고나면 AWS에 접속은 되나 S3접속시 다음과 같은 에러가 발생했다. The bucket does not allow ACLs 해당버킷이 ALC을 허용하지않습니다 ACL이란 버킷이나 버킷 객체에 액세스를 허용하거나 제한하는 권한설정이다 다만 Bucket Policy와의 차이점은 bucket policy는 버킷에만 권한 설정이 가능하고, ACL은 버킷뿐만아니라, 버킷객체에 권한설정이 가능하다는 것이다. 그래서 ACL은 각 객체마다 다른 권한 설정이 필요할때 사용한다. 대신 버킷정책은 JSON을 통해 더 세밀하게 권한설정을 조정할 수 있지만, ACL은 그렇지 못하다. 해당 버킷에 ACL을 활성화 해주는법) S3 - 해당 버킷 - 권한..
이미지를 업로드하는 기능을 추가하기위해서, multer와 sdk 모듈을 사용하다보면 에러가 발생한다. TypeError: this.client.send is not a function multer-s3는 3.x.x 버전이고, aws-sdk는 2.x.x버전일때 다음과같은에러가 발생한다 multer-s3를 다운그레이드하여 2.x.x로 맞춰주면 해결된다 multer-s3 삭제 npm uninstall multer-s3 multer-s3 재설치 npm install multer-s3@2.9.0