본문 바로가기

Study

(43)
MySQL 워크밴치 연결시 Public Key Retrieval is not allowed 에러 해결하기 나의 맥에서 도커로 MySQL 서버를 실행하고 워크밴치(DBeaver)로 해당 DB에 접근시 "Public Key Retrieval is not allowed" 에러 메세지가 발생했다. 당황하지 않고 일단 ChatGPT에게 물어봤더니 친절하게 해결 방법을 알려줬다.     해결 방법1. DBeaver 열기: DBeaver를 실행합니다. 2. 연결 설정 편집:왼쪽 패널에서 데이터베이스 연결을 찾고, 해당 연결을 우클릭한 후 Edit Connection을 선택합니다.3. Driver Properties 설정:Connection settings 탭으로 이동한 후, Driver Properties 섹션으로 가세요.여기에서 새로운 속성을 추가해야 합니다.Property: allowPublicKeyRetrieval..
[Kubernetes] 도커 데스크톱에서 쿠버네티스 사용하기 (Mac OS) *이미 Docker Desktop이 설치되었다고 가정하고 쿠버네티스 설치 과정을 진행한다.  1. 쿠버네티스 활성화하기1) Docker Desktop을 열어 Extensions > Settings를 클릭한다.       2) 왼쪽 메뉴에서 Kubernetes를 클릭하고 Enable Kubernetes 항목에 체크한 뒤 Apply & Restart 버튼을 클릭한다.      2. Kubernetes Cluster 설치하기 팝업창에서 Install 버튼을 클릭한다. (몇 분 정도 시간이 걸린다.)    3. Kubernetes Running 상태 확인쿠버네티스 클러스터 설치가 완료되면 Kubernetes가 running 상태가 된다.
[Kubernetes] Mac M1 - kubectl 설치하기 (ft. 카카오 클라우드) kubectl은 클러스터를 제어하기 위한 k8s 커맨드 라인 도구이다. GUI로도 사용할 수 있지만 다양한 CLI 명령어로 k8s를 제어할 수 있다. kubectl 제어를 설정하기 위해 먼저 kubectl 클라이언트를 설치한 뒤 kubectl 제어를 설정하는 순서로 진행해본다.    kubectl 클라이언트 설치하기 1. 최신 릴리즈를 다운로드 한다. (Apple Silicon 버전)터미널을 열어 curl을 이용해 kubectl 바이너리를 설치한다. $ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"   2. 바이너리를 검증한다 (선택 사항)1) 아래 ..
[NginX] Mac 로컬에 설치하기 개요NginX란?NginX는 가장 많이 사용되는 웹 서버 소프트웨어 중 하나이다. 웹 서버란, 웹 브라우저(ex. 크롬)의 요청에 따라 HTML, 이미지 등의 정보를 제공하는 소프트웨어 또는 그런 기능을 탑재한 컴퓨터를 말한다. 웹 서버 웹 브라우저간 HTTP, HTTPS 프로토콜로 통신하며, 웹 브라우저는 웹 서버에서 전송된 정보를 사람이 보기 편한 형태로 번역해서 화면에 표시해준다.  보통 웹 서비스를 개발할 때, 웹 서버 + WAS(웹 애플리케이션 서버) 조합으로 구성한다. WAS는 주로 데이터베이스로 관리되는 데이터를 처리하는 서버를 말한다. 웹 브라우저에서 사용자의 요청이 들어옴 -> 웹서버 -> WAS [데이터 처리] & WAS [데이터 전송] -> 웹서버 [HTML, 이미지 등 전송] ->..
[Jenkins] (3) 빌드 후 애플리케이션 자동 실행 설정 시도하기 (권장❌) 로컬에서 빌드 후 애플리케이션 자동 실행 스크립트 작성하기 이번 글에서는 Jenkins 빌드 후 자동 실행 스크립트를 작성해 애플리케이션 서버를 띄워볼 것이다.   1. Jenkins 빌드 파일 저장 위치 확인로컬에 설치한 Jenkins에서 빌드된 파일이 저장되는 위치는 다음과 같다. JAR 혹은 WAR 파일이 생성된다. /Users//.jenkins/workspace//target/ 나의 경우에는 빌드된 파일이 JAR 파일이다.    2. 아티팩트(빌드 파일) 실행하기아래 빌드 파일의 종류에 따라 터미널에서 아래 명령어를 입력하면 애플리케이션을 실행할 수 있다. JAR 파일 실행 명령어$ java -jar /Users//.jenkins/workspace//target/.jarWAR 파일 실행 명령어$ ..
[Jenkins] 비밀번호 잊어버렸을 때 변경하기 젠킨스를 처음 설치했을 때 확인했던 initialpassword 파일이 보이지 않는다. 그래서 비밀번호를 재설정 해봤다.  1. 젠킨스 config 파일 조회sudo vi /Users/yewonlee/.jenkins/config.xml터미널에서 위의 명령어를 입력해 파일 내용을 확인한다.  2. Config 수정true 이 부분을 false로 바꾸어준다. 3. Jenkins 재시작$ brew services restart jenkins터미널에서 위의 명령어를 입력해 젠킨스를 재시작 한 뒤, 웹에서 Jenkins를 다시 접근하면 로그인 과정 없이 접근할 수 있다. 4. 비밀번호 변경  위에서 Change Password 버튼을 클릭해 비밀번호를 수정하면 된다. 5. Config 수정 내용 원복2번에서 수정..
[Jenkins] (2) Mac 로컬에서 Maven 프로젝트 GitHub 연동 및 자동 빌드하기 Maven 환경 셋팅젠킨스에서 GitHub에 소스 코드가 변경될 때 Maven 프로젝트를 로컬에 빌드하는 배포 자동화 시스템을 구축할 것이다.  1. Jenkins 화면 왼쪽 메뉴에서 "Jenkins 관리" 클릭   2. Dashboard > Jenkins 관리 > Tools : 환경설정- Maven Installations 설정   3. Dashboard > Jenkins 관리 > Plugins > Available Plugins: 플러그인 설치 (1) GitHub Integration 설치 (2) Maven Integration 설치   4. 새로운 Item 만들기  (1) Item 이름 입력 후 "Freestyle Project"로 선택 후 OK (2) Item 환경 설정- GitHub Projec..
[Jenkins] (1) Jenkins란? Mac 로컬에 설치하기 Jenkins란?젠킨스에 대해 알아보기 전, 먼저 CI/CD의 개념을 알아야 한다. CI/CDCI(Continuous Integration)는 곧 지속적 통합, CD(Continuous Deployment)는 곧 지속적 배포라는 의미의 단어이다.개발자들이 동시에 작업한 코드 변경 사항을 통합(CI) 및 배포(CD)하는 프로세스를 의미한다.  JenkinsCI/CD를 위한 오픈 소스 도구로, 소프트웨어 개발 생명주기를 자동화한다.즉, 코드 변경 작업이 있을 때마다 빌드 > 테스트 > 배포 까지의 과정을 자동으로 수행하기 때문에 개발자들이 별도로 관리하지 않아도 된다. 또한 다양한 플러그인을 지원하기 때문에 필요에 맞게 CI/CD 환경을 확장할 수 있다.  Jenkins는 Master/Slave 구조로 동작..
[Spring Boot3] 로컬-운영 환경 분리 보통 데이터베이스, 포트 등 로컬에서 개발할 때와 실제 서비스 환경에서 사용할 때 설정을 달리 한다.  Spring Boot에서는 application.yml 파일에서 이런 내용을 관리하는데, 분리 설정은 아주 간단하다.     방법은 크게 두 가지가 있는데, 나는 하나의 파일에서 관리하는 2번 방식을 선택했다. 서비스 규모가 크지 않기 때문에 내용이 많지 않아 하나의 파일에서 설정하는게 더 편할 것 같기 때문이다.  1. resources/application-{환경변수}.yml + application.yml (default) 형식으로 환경별로 설정 파일을 생성 2. resource/application.yml 하나의 파일에서 '---' 구분자로 구분      1. application.yml 파일 ..
[AWS] 에러해결 - 인스턴스 연결성 검사 실패, 메모리 부족 갑자기 ssh 접속이 되지 않아 aws EC2 콘솔에서 확인해보니, 상태 검사 에서 1/2개 검사 통과 라는 표시가 있었다.   인스턴스 > 상태 및 경보 메뉴에 들어가보니, 인스턴스 연결성 검사 실패가 원인이였다.  구글에 해당 에러 해결 사례를 검색해보니, 시스템 로그 가져오기에서 에러 원인을 파악하는 것 같았다.나도 에러를 확인하기 위해 먼저 EC2 서버 재부팅 후 로그를 봐도 도저히 에러 문구에 해당하는 내용을 찾지 못했다.     그래서 위 사진 속, 시스템 로그 페이지에서 아래쪽에 있는 연결 을 클릭해보았다.     EC2 직렬 콘솔은 또 뭘까..? 지금 이 계정이 EC2 직렬 콘솔을 사용할 권한이 없다고 하니까, 권한을 줘야겠지. Manage access 를 클릭한다.   '허용' 에 체크!..
[AWS, Spring Boot3] EC2 배포, 서버 스크립트, Nginx 설치 1. EC2 인스턴스 인바운드 규칙 추가(HTTP/S, SSH는 이전에 추가) Spring Boot Server, React Server 접근 허용을 위해 아래와 같이 추가해준다.      2. 서버 Java 설치, 환경변수 설정아래 명령어를 순서대로 입력한다# 서버 접속ssh -i "키페어파일명.pem" ubuntu@{퍼블릭_DNS_주소}# 우분투 패키지 업그레이드sudo apt-get update# Java17 설치sudo api install openjdk-17-jdk# 설치 확인java -version    그리고 아래 명령어를 통해 자바 환경 변수를 설정해준다# 환경변수 설정 확인 (결과 없음 상태)$ echo $JAVA_HOME# Java 절대경로 확인$ whice java/usr/bin/ja..
[Spring Boot3] SSH 터널링 설정 (EC2 > RDS 데이터베이스) 2024년 초부터 RDS 인스턴스에 Public IP 주소를 무료로 사용하지 못하게 되면서, RDS 데이터베이스를 EC2에 연결하는 작업을 진행했다.  Spring Boot 서버에서도 EC2 서버를 거쳐 RDS DB에 접근하도록 설정했다. Jsch 라이브러리를 사용했다.    1. build.gradle 추가dependencies { ... implementation 'org.mariadb.jdbc:mariadb-java-client:3.4.0' implementation 'com.jcraft:jsch:0.1.55'}  2. application.yml 수정spring: datasource: url: jdbc:mariadb://{DB_HOST명}/{DB명} driver-class-..
[AWS] 프리티어 EC2 생성, EC2-RDS 연결, DataGrip SSH 연결 EC2 생성하기 1. EC2 대시보드에서 "인스턴스 시작" 버튼 클릭  2. AMI (Amazon Machine Image) 선택  3. 키페어 생성   4. 네트워크 설정 / 스토리지 구성 * 스토리지 구성 - 30GiB로 용량을 높였다.    5. 인스턴스 생성 완료  6. 보안 그룹 생성  [ 인바운드 규칙 추가 ]- SSH : pem키로 인스턴스 접근 가능하도록 설정- HTTP(80포트), HTTPS(443포트)로 기본적으로 접근할 수 있도록 설정+ 추후에 EC2에 올린 스프링이나 리액트 접근시 인바운드 규칙에 추가 필요!     7. EC2 인스턴스에 보안 그룹 설정  8. 인스턴스 접속(연결)         EC2와 RDS 연결하기 이전에 만들었던 RDS에 EC2를 연결하려고 보니 아래와 같은..
[AWS] RDS Free Tier 과금 해결 어느 날 갑자기 AWS 에서 결제가 되었다. 일주일 전 RDS 하나 만들 때 분명 프리티어 허용량에 맞춰 생성 했는데 이게 무슨일인가 싶어 원인을 찾아봤더니..  https://aws.amazon.com/ko/about-aws/whats-new/2024/02/aws-free-tier-750-hours-free-public-ipv4-addresses/ 즉, 프리티어로 하나의 Amazon EC2용 무료 IPv4 주소를 사용할 수 있고 그 외에는 시간당 0.005USD 요금이 부과된다고 한다. 지금 내가 사용중인건 EC2가 아니라 RDS를 생성한거라 무료 사용에 해당되지 않아 요금이 부과된 것 같다. 로컬 컴퓨터에서 DataGrip 같은 툴을 사용해 DB에 접근할 수 있도록 하려 했는데, 이렇게 되면 ssh ..
[AWS] 프리티어 RDS 생성, DataGrip 연결 RDS 데이터베이스 생성AWS 프리티어로 RDS(Relational Database Service) 를 생성했다. DB 생성 설정과, 과금 방지를 위해 확인 할 부분은 아래와 같다. DB 설정 내용엔진 옵션 > MariaDB / 10.11.6 버전템플릿 > 프리 티어(Free Tier)설정DB 인스턴스 식별자 > "gods-work-db"마스터 사용자 이름 > "root"마스터 암호, 암호 확인 > "******"인스턴스 구성 > "db.t3.micro"스토리지할당된 스토리지 > 20 GiB스토리지 자동 조정 활성화 > OFF연결 / 퍼블릭 액세스 > "예"추가 구성초기 데이터베이스 이름 > 예)"gods-work"자동 백업 활성화 > OFF유지관리 / 마이너 버전 자동 업그레이드 사용 > OFF 기본적..
Spring Boot 데모 프로젝트 생성 스프링 부트는 웹 애플리케이션 서버를 구성하고 배포하는 복잡한 과정의 어려움을 해결해주는 좋은 해법이 될 수 있다. 특별한 설정 작업 없이 기본 설정만으로도 다양한 기능을 구현할 수 있고 기본 설정에서 조금 수정하는 수준에서 더 다양한 것을 만들 수 있다. 1. 스프링 이니셜라이저 접속 https://start.spring.io 에 접속 후 아래 사진과 같이 설정 해준다. 다운받는 프로젝트 패키징 종류에는 Jar, War 두 가지 방법이 있는데 차이점은 아래와 같다. JAR (Java Archive) - Java 애플리케이션이 동작할 수 있도록, 자바 프로젝트를 압축할 파일 - Class, 라이브러리 파일을 포함한다 - JRE (Java Runtime Environment)만 있어도 실행 가능하다 WAR..
Apache Airflow 설치 (+ MySQL) 0. 실행 환경 - Centos 7 - MySQL 5.7 1. 필요한 패키지 설치 1) MySQL 설치, Database 생성 # MySQL 접속 mysql --user={계정} --password={password} --host={host} # database 생성 create database airflow; # 유저에 airflowDB 권한 부여 grant all privileges on airflow.* to '{계정}'@'%'; 2) 가상환경 생성 및 실행 # 가상환경 생성 python -m venv venv # 가상환경 실행 source venv/bin/activate 3) airflow 설치 # pip upgrade pip install --upgrade pip # airflow 설치 pip ..
[Elasticsearch] Kibana 설치하기 0. 설치 방법의 종류주로 rpm 으로 Kibana 설치를 많이 하는 것 같다. RPM이란?Red Hat Package Manager의 약자로, Red Hat 계열의 Linux 배포판에서 주로 사용된다. Kibana RPM 패키지는 시스템 패키지 관리자를 통해 간단하게 설치할 수 있다. yum이나 dnf와 같은 패키지 관리자를 사용해 의존성을 자동으로 해결하며, upgrade/제거도 편리하다.  하지만 여기선 TAR 아카이브로 직접 파일을 다운받아 설치하려고 한다. (root가 아닌 계정으로는 rpm을 통해 설치할 수 없다고 한다)TAR 아카이브란?일반적으로 리눅스 시스템 어느곳에서나 압축을 해제할 수 있다. 이 방법은 배포판에 상관없이 사용할 수 있으며, 커스마이징이 자유롭다. 의존성 및 설정은 수동으..
유데미 Python 부트캠프
[자격증] SQLD 제50회 후기 시험 준비부터 결과까지 기적의 연속이었다. 시험 공부를 미루고 미루다 거의 막판에 토익스피킹 시험 끝난 뒤 목+금 2일동안 벼락치기로 공부했다.  나는 원래 벼락치기를 거의 하지 않고 미리 계획해서 공부를 끝내는 사람인데.. 갈수록 너무 게을러지는 것 같다.  그냥 문제집을 너무 보기가 싫었다.  그래서 미루다가 목요일 저녁에도 2시간?정도 개념 공부만 하다가, 금요일에 단테 팀장님이 청소하고 일찍 보내주셔서 점심먹고 퇴근해서 바로 집근처 스터디카페 가서 개념공부 쭉 집중해서 한게 거의 대부분이었던 것 같다.  그때까지만해도 문제는 거의 안풀어보고 개념공부만 하고 괜찮겠지~ 하고 곱창트럭에서 곱창 사서 먹고 마저 문제를 풀려고 했는데, 막상 곱창을 먹고 나니까 매워서 그런지 속이 너무 안좋아서 얼마 못하..
[자격증] 2023년 2회 정보처리기사 실기 김천선교 가기 바로 직전 토요일에 정보처리기사 실기 시험이 결정되었다. 감사하다.
[Spring] w/ MyBatis 지난번 에브리타임 을 보고 따라 만든 웹 서비스 프로젝트를 다시 한 번 정리하려고 한다. github Wiki에서 프로젝트 생성~로그인 기능까지 생성하는 과정을 간단히 정리했다. lyw3447/2021WebCamp Contribute to lyw3447/2021WebCamp development by creating an account on GitHub. github.com 이 Spring MVC Project의 구조는 아래와 같다 1. Dispatcher Servlet : Spring MVC 에서 dispatcher-servlet은 클라이언트로부터 URL로 접근해 들어온 요청(Request) 접수 : View로부터 받은 결과 클라이언트에게 전달(Response) > servlet-context.xml ..
HTML Forms & Graphics Form Form - element는 type attribute에 의존하여 많은 방법으로 나타내 진다. Type 설명 Displays a single-line text input field Displays a radio button (for selecting one of many choices) Displays a checkbox (for selecting zero or more of many choices) Displays a clickable button Displays a submit button (for submitting the form). action 속성에서 구체화된다 Defines a password field Defines a reset button that will reset all f..
웹사이트 개발 과정 1. 정보 수집 2. 계획 3. 디자인 4. 내용 작성, assembly 5. 코딩 6. 테스트, 리뷰, 출범 7. 유지보수 위는 웹 개발의 일곱 가지 주요 단계라고 할 수 있다. 1. 정보 수집: 의도, 주요 목적, 타겟층 설정 탐색과 수집을 하는 첫 번째 단계는, 앞으로 따라올 단계들을 어떻게 만들지 결정 해준다. 이 시점에서 가장 중요한 것은 이 웹사이트의 의도, 얻고 싶은 주요 목표, 그리고 타겟층을 잘 이해하는 것이다. 예상 기간: 1~2 주