본문 바로가기

반응형

분류 전체보기

(366)
NextJS 를 AWS EC2 에 배포하는 경우 비밀번호 찾기 기능이 안 되었던 이유와 해결 방법( with AWS SES + 샌드박스 해지 ) SMTP 의 기본 포트는 25 이다.내가 만든 프로젝트에서 비밀번호 찾기 기능을 구현하고, EC2 에 배포했을 때 비밀번호 찾기 기능이 동작하지 않았다. 그 이유로 짐작되었던 것을 오늘 확인하였다. 그건 EC2 에서 외부 네트워크 요청에 대한 인바운드 규칙을 설정해두지 않았기 때문이다. SMTP 의 경우 기본적으로  TCP 25 포트를 사용하기 때문에, EC2의 인바운드 규칙에서 해당 포트로 요청이 들어오는 것을 허용해주어야 한다. 즉, 나는 이것을 설정해두지 않아서 차단이 되었던 것이다(라고 서두에 언급하였지만, 이 방법은 실패하였다. 물론 해당 포트 문제도 있었겠지만 근본적인 부분은 지메일 SMTP 서버에서 리전이 차이가 나는 경우 보안상 이유로 차단을 박는다.).  [해결방법 - 실패 사례] 그러므..
[자료구조] 배열을 이용한 스택과 큐 구현 들어가기 전 앞서 시간 까지는 연결 리스트에 대해서 정리하였고, 이번에는 스택과 큐에 대해서 알아보고 이에 대한 구현을 시도해보고자 한다. 마지막에는 내가 생각하기에 배열을 이용한 경우 생길 수 있는 장단점에 대해 언급하며 끝내고자 한다. 스택과 큐 스택 우선 스택의 경우에는 후입선출(Last In First Out) 의 구조를 지니는데, 마지막에 들어온 요소가 먼저 나가는 특징을 보인다. 흔히 자바스크립트에서 실행 컨텍스트가 쌓이는 구조가 스택 자료구조를 따르며 그래서 이름 또한 호출 스택 ( Call Stack)으로 불린다. 큐 큐를 한 단어로 정리하면 대기줄이다. 보통 영화관 입장이나 놀이공원 입장을 생각해보면 먼저 온 사람이 앞에서 표를 끊고, 늦게 온 사람은 다음 순서를 기다려며 대기하고 있다...
자바스크립트에서 사용되는 주요 배열 메서드의 시간복잡도에 대해서 알아보자? [배경] 자료구조에 대해 공부하다보니 자료구조에 대해 공부하다보니 갑자기 궁금해진 것이 하나 있다. 이 때 까지 당연하게 사용하던 배열 메서드들의 시간복잡도는 어떻게 될까? 내부적인 구현은 숨겨져 있으니 일일이 계산할 수는 없더라도 눈에 보이는 동작만 봤을 때 해당 메서드들이 어떤 시간복잡도를 가지는지 알아보면 재밌을 것 같아서 해당 포스트를 작성해본다. [기초 개념] 시간복잡도에 대한 개념 시간복잡도는 알고리즘이 문제를 푸는데 걸리는 시간을 의미한다. 여기서 시간이란 실제 시간을 의미하기 보다는 연산의 크기를 측정한 값이라고 이해하면 된다. 예를 들어 아주 전통적인 for 문을 사용하여 배열을 순회한다고 가정할 때, 이 때 배열의 길이인 n 이 증가할 때 마다 순회 하는데 필요한 연산의 횟수도 증가하게..
바로가기용 노션링크 저장 광고 클릭 방지용 https://youngwan2.notion.site/27bf06c0a4694bc9ad436d1efd31d953#e63796a79ffd4097b6938ea1d10c033e 프로그래머스(레벨0) | Notion 레벨 0 | 순서쌍의 개수 구하기 youngwan2.notion.site 광고 클릭 주의 방지용
프로젝트 sitemap.xml 을 찾을 수 없다는 문제를 해결하고.. 이전 포스트 배포 사이트 색인이 왜 1 개만 생길까요? 문제의 발단 제가 사이트를 배포할 때 NextJS 에서는 동적으로 사이트맵을 생성하는 기능을 지원해주기에 이를 이용해서 사이트맵도 색인 요청을 Google Search Console 을 사용해서 신청했었습니다. duklook.tistory.com 조금 만 더 기다려 봐야 겠습니다. 며칠 동안 sitemap.xml 을 사이트를 통해 조회를 하면 찾을 수 없다는 문제가 계속 발생하였습니다. 원인은 제가 사이트를 재배포할 때 sitemap.xml 을 생성하는 과정에서 실제 사이트가 닫혀 있는 상태라서 문제가 발생하였기에, 잠시 sitemap-temp.xml 이라는 이름으로 변경해둔 것이 화근이었습니다. 해당 문제는 바로 수정할 수 있는 사항이므로 이를 수..
git 명령어를 모아두는 아카이브 이 포스트는.. 해당 포스트는 자주 사용되는 git 명령어와 그 예시를 저장해두는 용도로 활용하는 포스트 입니다. 기타 문서에 정리해둔 내용을 옮기거나, 새롭게 알게된 지식을 쌓아가며 추후 활용하기 쉽도록 목록화시키기 위한 목적으로 사용됩니다. 매번 새로운 내용으로 갱신될 때 마다 그 날짜를 기준으로 포스트가 갱신됩니다. 최근 커밋 취소 git reset --soft HEAD~1 최신 커밋을 취소하고 변경 사항을 스테이징 영역에 유지합니다. 변경 사항은 커밋되지 않은 채로 남아 있습니다. git reset --soft HEAD~1 git reset --mixed HEAD~1 (기본 옵션) 최신 커밋을 취소하고 변경 사항을 스테이징 영역에 제거합니다. 변경 사항은 작업 디렉토리에 유지됩니다. git res..
[NextJS] 서버 컴포넌트에서는 어떻게 쿼리 파라미터를 읽을 수 있을까요? 포스트를 작성하게 된 배경 이번에 진행중인 개인 프로젝트인 명언 웹 사이트에서 사용자가 등록된 명언 카드와 관리자가 등록한 명언 카드 간에 쿼리 파라미터를 사용해서 구분 후 서로 다른 로직을 처리해야 하는 일이 생겼습니다. 그런데, 클라이언트 컴포넌트에서는 useSearchParams 라는 리액트 훅을 사용하여 쿼리파라미터를 읽어오거나, window의 location 객체의 searchparams 를 사용하면 간단하게 처리할 수 있는데, 서버 컴포넌트에서는 이 훅들의 사용이 불가능 합니다. 따라서 이번 기회에 서버 컴포넌트에서 쿼리 파라미터를 읽는 방법을 정리하면서, 프로젝트에 적용해볼까 합니다. 바로 본론으로, 공식문서에 답이 있습니다(단, NextJS 13.0 이상에서만 가능). 블로그 글 보다는 공..
[자료구조] 이중연결리스트 remove 함수(메서드) 만들기 들어가기 전 이제 이중연결리스트의 remove 함수 구현에 대한 부분까지 도전하는 시기가 되었다. 사람들은 연결리스트가 쉬운 자료구조라고 하는 것 같은데, 내가 보기에는 참조 관계를 이어주고 끊어주는 것 부터, 리스트의 특정 위치에 노드를 추가함으로써 생기는 여러 문제들을 해결하는게 그리 쉬운 것 같지는 않다. 계속 뜯어보고, 원리를 생각하며 공부해보니 조금씩 해당 자료구조의 필요성과 이점, 단점 등이 보이기 시작하고 있는데, 이것이 구현 능력으로 이어지기 위해서는 꾸준히 노력해야 함을 인지하고 들어가 본다. 이중 연결리스트에서 노드를 제거하려면? 이중 연결리스트에서 노드를 제거하는 방법은 첫 번째 노드를 제거하거나, 마지막 노드를 제거하거나, 아니면 중간에 있는 노드를 제거하는 등 응용에 따라서 다양하..

반응형