본문 바로가기

개발 기록

(29)
[DB] PostgreSQL "permission denied for schema public" 문제 해결하기 1. 문제 상황Django 프로젝트에서 PostgreSQL 데이터베이스를 사용하기 위해 마이그레이션을 실행하는 중 다음과 같은 오류가 발생했습니다:django.db.utils.ProgrammingError: permission denied for schema public LINE 1: CREATE TABLE "django_migrations" ("id" bigint NOT NULL PRIMA... 이 오류는 PostgreSQL 사용자 계정에 데이터베이스와 public 스키마에 대한 필요한 권한이 없을 때 발생합니다. Django가 public 스키마 내에 테이블을 생성하려 하지만 권한이 없어서 실패한 것이죠.2. 문제 원인PostgreSQL에서 데이터베이스와 스키마의 권한은 기본적으로 제한적으로 부여됩니..
[DB] PostgreSQL 외부 접속 허용하기 (Connection refused: no further information) 안녕하세요 :)프로젝트 환경 세팅을 위해서 AWS에 lightsail을 실행하고, PostgreSQL을 직접 설치를 하였습니다.제 로컬 환경에서 DB에 직접 접속을 하려고 하니 아래 처럼 에러가 발생을 하였습니다.Connection refused: no further information 데이터베이스 설치 및 Lightsail에서 5432 포트까지 열어주었는데도 접속이 안되더라구요.그래서 확인을 해보니, 데이터베이스 환경설정파일에 접속할 수 있는 주소를 열어주셔야 되겠습니다 1. postgresql 설정지금에 설정을 하는 이유는 PostgreSQL이 어떤 IP에서 들어오는 연결을 받을지 설정을 단계입니다.터미널을 열어주신 다음에 아래 명령어로 설정 파일을 열어주세요.sudo vi /var/lib/pgsq..
[JS] 성능 최적화를 위한 데이터 구조 선택 (with reduce, find) 프론트엔드 개발을 하다 보면 종종 대량의 데이터를 탐색하거나 필터링할 때 성능 저하를 경험할 수 있습니다. 특히, React 애플리케이션에서 비동기 API로 받아온 데이터를 탐색할 때 이러한 문제가 더욱 두드러지는데요. 오늘은 배열 탐색과 객체 접근 방식의 차이를 이해하고, 성능을 최적화하는 데이터 구조 선택 방법을 알아보겠습니다. 1.  문제 상황const prices = [ { address: '토큰1', priceInUsd: 10 }, { address: '토큰2', priceInUsd: 20 }, { address: '토큰3', priceInUsd: 15 },];const tokensWithBalance = [ { address: '토큰1', amount: 5 }, { address: '..
[aws] Amazon Linux 2023에서 dnf가 안되는 경우(파이썬 버전 변경, Postgres DB 직접 설치) AWS 인스턴스 서버를 사용하고 있습니다. 운영체제 종류는 Amazon Linux 2023을 사용하고 있는데요.기본적으로 파이썬 3.9 버전이 설치가 되어 있었습니다 :) 제 서버는 파이썬 3.12 버전을 사용하고 있기 때문에, 파이썬 3.12 버전을 별도로 설치를 진행을 하였는데요. 파이썬 버전 변경까지는 문제가 없었습니다. 3.12 버전도 잘 사용하고 있었구요.하지만!! dnf를 사용하면서 문제가 발생을 하였습니다ㅠㅠ (Postgre SQL을 설치하고 있었습니다ㅎㅎㅎ)dnf가 무엇이냐?바로, 리눅스에서 패키지 관리 도구입니다. 프로그램 설치, 업데이트, 삭제를 도와주는 도구로써 YUM의 업그레이드 버전이겠습니다.파이썬 3.12 버전으로 변경을 하고 dnf를 사용하니 해당 명령어를 사용할 수가 없다고 ..
CSS Grid 사용법 정리 (grid column, row에 이름 명시) 안녕하세요. 저번 시간에는 grid를 활용하여 표를 만들어 보았습니다. 또한 grid-column, grid-row 속성을 활용하여 원하는 셀들을 합치는 과정도 학습을 하였는데요. (이전 학습 URL: https://mjlabs.tistory.com/48) 이번 시간에는 셀들을 합치는 과정에서 조금 더 쉽게 합칠 수 있도록, column과 row에 이름을 부여해 보도록 하겠습니다 :) 1 2 3 4 5 6 7 8 html 코드를 위와 같이 작성을 하였습니다. grid 속성을 부여하기 위해서 container div를 만들고, 자식 태그로 box div를 8개 만들었습니다. 다음으로 css 코드를 작성하겠습니다. .container { display: grid; grid-template-columns: [..
CSS Grid 사용법 정리 (grid-template-columns, grid-template-rows) Grid는 행과 열을 나누어 UI를 만들기 위해서 사용이 됩니다. HTML의 블록 태그를 사용하면 태그들이 층층이 쌓이게 되고, 인라인 태그를 사용하게 되면 한 줄로 태그들이 쌓이게 되는데요. Grid 없이 UI를 만들고 화면을 분리를 하게 되면 정말 쉽지 않다는 것을 느낄 수 있습니다. Grid의 사용법과 많이 쓰는 속성들에 대해서 정리를 하도록 하겠습니다 :) 1. 기본 Grid 만들기(grid-template-columns, grid-template-rows) 부모 태그인 container div를 하나 생성하고, 자식 태그인 box div를 4개 생성하였습니다. 1 2 3 4 Grid를 만들 때는 자식 태그가 아닌, 부모 태그(예제에서는 container div)에 Grid 속성을 직접 명시를 해..
Github와 AWS CodeDeploy 연동 - CI/CD 구축 안녕하세요 :) 이번시간에는 Github(action)와 AWS(Codedeploy, ec2)를 활용하여 CI/CD 구축을 하도록 하겠습니다. CI(continuous integration) /CD(continuous deployment)는 자동으로 코드 통합과 배포를 위한 시스템 설계예요. 개발은 로컬에서 진행이 되고, 개발이 완료되면 Github로 push를 하게 됩니다. 이때 빌드, 테스트 그리고 배포까지 자동으로 수행이 되며, 서버(ec2)에 변경된 코드가 실행까지 이루어지게 되는데요. 코드를 push만 하면 모든 것이 자동으로 이루어지니 굉장히 편하겠습니다 :) 한 번만 세팅을 해놓으면 개발 이외에는 자동화를 시킬 수 있으니 꼭 도전을 해보셨으면 좋겠습니다! 물론 아래 실습은 aws 프리티어로 ..
[aws] amazon linux 2023 crontab 설치 안녕하세요 :) aws ec2 인스턴스를 새롭게 생성을 하였습니다. os는 amazon linux 2023으로 생성을 하였는데요. 배치 작업을 수행하기 위해서 crontab 명령어를 입력하였습니다. 하지만... 설치가 되어 있지 않은 crontab.. 리눅스에 crontab이 설치가 안되어 있을 수 있나 싶었는데, aws linux 2023에는 crontab이 설치가 안되어 있어서 필요로 하면 별도로 설치를 해주셔야 됩니다. # crontab 설치 sudo yum install cronie -y # 동작 확인 sudo systemctl status crond # 실행 sudo systemctl start crond sudo systemctl enable crond 설치 후에는 sudo systemctl ..