본문 바로가기

기술

(32)
MySQL/MySQL Workbench/Docker) 원격 서버에서 docker로 mysql 설치하고, 로컬에서 mysql workbench로 접속하기 devops 개발자 팀원이 서버 만들어주면서 docker 설치해주셨고, docker에 mysql 이미지를 받아두셨다. 아마 이건 docker 설치하고 그냥 docer pull mysql 하면 되는듯 1. 원격 서버 ssh로 접속해서 docker mysql 이미지 실행시키기 docker image가 정상적으로 받아져있다면 아래와 같이 떠있을 것. $ docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD= --name -v :/var/lib/mysql mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci -d : 백그라운드로 실행 -p 3306:3306 : 서버의 3306 포트를 ..
Git) 특정 파일이 gitignore 적용되지 않을 때 나의 경우, a.csv파일과 b.csv 파일이 있는데 a파일은 gitignore에 추가해서 추적이 되지 않는 반면, b 파일은 추가해도 계속 추적되는 문제가 있었다. 찾아보니 이 경우는 git에서 파일을 추적하는 인덱스 관련한 정보가 캐시되어서 그런거라고 하더라. 그래서 전체 캐시를 다시 지웠다가 다시 add해주는 방법이 있고, 특정 파일 캐시만 지웠다가 다시 add 해줄 수도 있다. 나는 파일 하나가 문제였기 때문에 그 파일 하나 캐시를 지웠다가 다시 추가해주었다. 일단 gitignore 적용이 안되는 파일을 gitignore에서 빼준다. 그렇지 않으면 파일이 날아간다. 그러니까 위 예시의 상황에서는 gitignore 파일에 b.csv가 포함되어 있으면 안된다. gitignore 파일을 잘 작성하고, ..
Docker) Dockerfile로 Jar 실행 도커 이미지 생성하기 (Java 11 + Spring Boot + Gradle) 스프링부트로 개발한 웹 어플리케이션을 개발 서버에서 배포 및 운영 서버로 이관할 때 설치해야되는 패키지가 많아서 굉장히 애를 먹었다. 그래서 이번 기회에 처음으로 도커로 실행 환경을 셋팅해보았다. 프로젝트 개발 환경 Java 11 Spring Boot Gradle dev 서버 : Ubuntu prod 서버 : RedHat RedHat에 Docker 이미지 생성하기 1. 서버에 도커 설치하기 2. 서버에는 아직 자바가 설치되어 있지 않은 상황 -> 도커에 있는 자바 11 이미지 땡겨오기 자바 이미지 찾기 $ docker search openjdlk $ docker pull adoptopenjdk/openjdk11 이 명령어로 찾을 수 있는데 2021년 9월 기준 아래와 같이 보이고 그 중에서 빨간색으로 표..
Linux/Java/VSCode) Gradle -> ERROR: JAVA_HOME is set to an invalid directory: 해결 왠지 모르게 어느날부터 자바 셋팅이 꼬였는데 일단 gradle도 안되는 상황 ㅠㅠ 개발 환경 mac -> vscode -> ssh -> remote linux server 맥에서 vscode로 리눅스 서버 접속 (remote extension 사용) 우선 jdk는 서버에 설치가 잘 되어 있는 상황이었다. (javac --version) 하니까 잘나옴 1. $ which java /usr/bin/java 2. $ readlink -f /usr/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 여기서 뒤에 bin/java는 뺴야함 3. sudo vi /etc/bash.bashrc export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-..
VSCode) VSCode에서 JAVA System.out.println 단축키 사용하기 eclipse에서 System.out.println을 sout이라는 단축키로 등록해놓고 사용했었는데 vscode에서는 그게 안됐다. 그래서 구글링하다가 발견한 아주 편리한 플러그인을 소개한다. Java System Out Println Java System Out Println - Visual Studio Marketplace Extension for Visual Studio Code - Help insert and remove System.out.println(*) statement marketplace.visualstudio.com vscode 사이드바에 있는 마켓플레이스에 들어가서 Java System Out Println을 검색하서 설치하면 간단히 사용할 수 있다. 사용법 (MacOS) comma..
Git) GitHub Actions 사용법 CI/CD 란? CI (Continuous Integration) : 지속적 통합 CD (Continuous Delivery/Deployment) : 지속적 배포 협업을 통해 애플리케이션을 개발할 때, 새로운 코드 변경 사항을 정기적으로 빌드 및 테스트 하여 퍼블릭 레포지토리에 통합되어야 함께 개발하는 개발자들이 동시에 애플리케이션 개발과 관련된 코드 작업을 할 때 발생할 수 있는 충돌 문제를 해결할 수 있다. 또한 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 자동으로 깃 레포지토리에 업로드 되도록하여 해당 레포지토리에서 애플리케이션을 실시간으로 프로덕션 환경으로 배포할 수 있게 하여 지속적 서비스 제공이 가능하게 한다. 즉, CD를 통해 지속적 제공 및 배포 과정을 자동화여 최소한의 노력으로 ..
Linux/vscode) vscode로 remote 환경 연동, Error: EACCES: permission denied 에러 해결 vscode에 extension 중 remote-development를 설치하고, ssh connection을 한 뒤, config 파일에 해당 원격 서버에 사용할 pem 파일을 등록한 후, 연결 성공! ** 이때 로컬에 저장된 pem 파일의 권한은 반드시 400으로 설정돼 있어야 한다. $ chmod 400 [pem파일이름].pem 근데 로컬에 있는 파일을 원격 서버에 올리려니까 아래와 같은 에러가 뜬다. 원격 서버 프로젝트 폴더의 권한이 root라서 안되는 것이었다. 그래서 호스트 권한을 변경! $ chown -R [host_name] * 해결!
리눅스/Ubuntu) 80포트 8080으로 포워딩 하기 $ sudo su $ iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 $ sh -c "iptables-save > /etc/iptables.rules" $ vi /etc/network/interfaces >> 여기에 아래 라인 추가하고 저장 pre-up iptables-restore < /etc/iptables.rules 우분투 서버에서 8080포트로 실행된 스프링부트 프로그램을 80포트 접속시 실행되게 하고 싶었다. nohup gradle bootRun 하니까 백그라운드로 실행되고, 포트넘버 80으로 접속해서 잘 접속됨!