전체 글

전체 글

    눈물없인 들을 수 없는 땅지원의 서버 설정 이야기

    눈물없인 들을 수 없는 땅지원의 서버 설정 이야기

    이야기처음에 gitlab cicd를 이용하여 적용을 해보려고 했는데 gitlab-cicd.yml 작성하는게 너무너무너무 어려웠다. 관련자료도 너무 없어서 수요일을 모두 날리고 목요일 아침에 출근하자마자 Jenkins로 하자고 눈물을 머금고 갈아탔다.서버안에 도커를 깔아서 MariaDB, Redis, OpenVidu, Jenkins 4가지 Container를 돌린다=========================================여기까지 진짜 완벽함 그리고 docker에 Jenkins를 설치하고 Jenkins 계정을 생성하고 플러그인을 다운을 하는데 갑자기 청천벽력 같은 에러를 마주한다 계절학기 때 Jenkins에 대해 충분히 경험을 해본 땅지원은 한번도 만난적없는 이런 에러에 당황을 했지만 침착하..

    [Jenkins] Jenkins로 Springboot 빌드 및 배포하기

    [Jenkins] Jenkins로 Springboot 빌드 및 배포하기

    Jenkins 설치 sudo docker run -itd --name jenkins -p 8080:8080 -v /docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -e TZ=Asia/Seoul -u root jenkins/jenkins:lts 바로 명령어 실행하면 알아서 jenkins/jenkins:lts 버전 받아짐 # 이걸로 하는게 맞는듯? sudo docker exec -it jenkins bash sudo docker exec -it jenkins /bin/bash cat /var/jenkins_home/secrets/initialAdminPassword ** 다른 방법으로 젠킨스 설치하고 싶을 떄 Jenk..

    [AWS] EC2 Instance에 MariaDB 설정하기

    [AWS] EC2 Instance에 MariaDB 설정하기

    서버 접속하기 ssh -i I8A704T.pem ubuntu@i8a704.p.ssafy.io 22(ssh), 80(http), 443(https), 8080 이외의 포트는 외부에서 막혀있음 이게 외부에서 접근할 때 4개만 제한된다는거지 서버 내부에서 어떤 포트를 쓰는지는 상관없음 ex) mariaDB가 3306사용하는데 서버 내부에서는 어떤 포트 쓰는지 상관없으니까 3306 써도된다는 의미 sudo apt-get update sudo apt-get upgrade sudo apt install git sudo apt install docker.io #서버 시작시 도커가 시작되게 함 sudo systemctl start docker sudo systemctl enable docker #docker는 기본적으..

    [SpringBoot] CORS 설정

    CORS(Cross Origin Resource Sharing) Origin 이 다른 경우에 자원을 주고 받을 수 있도록 하는 http 통신 프로토콜 요청하는 클라이언트와 응답해야하는 서버의 Origin 이 다른 경우 CSRF(Cross-Site Request Forgery)나 XSS(Cross-Site Scripting) 같은 공격에 취약하기 때문에, 특정 Origin 과 request method 에만 요청을 허용하기 위함이다. CORS 정책 설정은 Spring MVC 와 Spring Security 두 프레임워크에서 모두 설정이 가능하다. 둘 중 하나만 설정해도 충분한데, 가장 중요한 점은 Spring Security 가 가장 앞단에서 사용자 요청을 처리하기 때문에, Spring Security 에..

    [CS] HashTable & Set & Map에 대해

    [CS] HashTable & Set & Map에 대해

    Set 집합 순서가 없다. 집합이므로 중복된 데이터가 들어갈 수 없다. 중복되지 않는 숫자(데이터)를 구할 때 사용하면 유용하다. 순서가 없고, 중복을 허용하지 않는다 HashSet 순서를 보장 하지 않는 set TreeSet Binary Search Tree 구조 추가와 삭제에는 시간이 좀 더 걸리지만, 정렬 및 탐색에 성능이 좋음 오름차순으로 데이터를 저장 TreeSet set1 = new TreeSet();//TreeSet생성 Map Key와 Value로 이뤄진 데이터의 집합 Key의 중복은 허용되지 않고, Value의 중복은 가능하다. HashMap 순서를 보장하지 않는 map, Key와 Value로 null이 허용된다. HashTable 동기화를 지원하는 map, Key와 Value로 null이..

    Git Flow 전략에 대해

    Git Flow 전략에 대해

    # 브랜치 확인 git branch # 브랜치 전환하기 git checkout # 브랜치 작성과 체크아웃을 한번에 git checkout -b # 브랜치 삭제 git checkout -d git branch -d # 원격저장소의 브랜치 삭제하기 명령어 git push origin -d # 생성한 branch를 origin Repository에 push하기(이래야 완전한 브랜치 완성) git push --set-upstream origin # 특정 branch의 내용만 로컬로 clone 하기 git clone -b 현재 위치해있는 로컬 디렉터리에서 브랜치를 만들고 push를 하게되면 현재 값들이 branch에 저장된다Ex) master - test1.txt, develop - test2.txt가 있는데 현..

    [CS]가상 메모리,  페이징과 세그멘테이션에 대해

    [CS]가상 메모리, 페이징과 세그멘테이션에 대해

    메모리 관리 컴퓨터 내의 한정된 메모리를 극한으로 활용해야 하기 때문에 가상 메모리 운영체제 관련 프로세스만 몇GB가 넘을텐데, 스마트폰에 앱 하나 실행하는 것도 아닌데 물리 메모리의 크기에 한계를 극복하기 위한 기술 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식으로 사용 Swapping 가상 메모리에는 존재하지만 RAM에는 없는 데이터나 코드에 접근할 땐 오류가 발생하게 되는데, 이때 메모리에서 지금 당장 사용하지 않은 영역을 저장공간으로 옮기고 저장공간의 일부분을 마치 메모리처럼 불러와 쓰는 것 말 그대로 메모리와 저장공간을 서로 Swap해서 쓰는 기술 메모리 할당 메모리에 프로그램을 할당할 때는 시작 메모리 위치, 메모리 할당 크기를 기반으로 할당 연속 할당 그냥 프로세스를 순차적으로 메..