전체 글92 컴퓨터 네트워크 2주차 스터디 정리 HTTPS HTTPS란? https는 hypertext transfer protocol secure의 약자이며 HTTP의 보안버전 이다. 데이터 전송의 보안을 강화하기 위해 암호화를 한다. 은행 계좌, 로그인 및 개인 정보 등 중요한 데이터를 전송할 때 특히 중요하다. HTTPS 사용 목적 HTTPS는 HTTP에서 '보안' 요소만 추가된 프로토콜이다. HTTPS의 주요 목적은 데이터의 무결성과 개인정보를 보호하는 것이다. 웹 브라우저와 웹 서버 간의 전송되는 모든 데이터가 암호화되어 가로채거나 변조되지 않는다. 추가적인 목적으로는 아래가 있다. - 사용성: 크롬에서는 SSL 인증서가 없는 사이트를 방문시 Not secure 라는 경고창을 표시해준다. - 사이트 체류시간 증가 : 체류시간에 증가할수록 se.. 외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 2기 2023. 7. 30. 데이터베이스 1주차 스터디 정리 파일시스템이란 컴퓨터에서 저장장치 안에 저장되는 파일들을 관리하는 시스템이다. 폴더와 파일의 계층 구조로 되어있어 폴더를 만들고 폴더안에 파일을 만들어서 사용한다. 파일 시스템은 간단한 데이터 저장 및 검색 작업에 적합하다. 데이터베이스는 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 집합이다. 특징은 아래와 같다. 1. 실시간 접근성 - 사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어진다. 2. 지속적인 변화 - 생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지 3. 동시 공유 - 사용자들이 원하는 데이터를 동시에 공유 가능 4. 내용에 대한 참조 - 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 가능 5. 데이터 논리적 독립성 - 응용프로그램과 데이터베이스는 독립.. 외부활동/CS 면접 끝장내기 - 데이터베이스 1기 2023. 7. 25. 컴퓨터 네트워크 1주차 스터디 정리 컴퓨터 네트워크와 네트워크 레이어 라우터와 스위치란? 스위치란 같은 네트워크 안에서 통신장비들을 서로 연결해주어 자원을 쉽게 공유할 수 있도록 해주는 장치이다. L2(데이터 링크 계층)에 속하며, MAC 주소를 기반으로 통신한다. 라우터란 다른 네트워크 사이에서 목적지로 가는 적합한 경로를 찾아주는 라우팅 기능을 제공하는 장치이다. L3(네트워크 계층)에 속하며, IP 주소를 기반으로 통신한다. 네트워크 네트워크(Network)란 Net과 Work의 합성어이다. 의미를 해석하자면 '그물처럼 서로 엮여서 일하는 것'으로 볼 수 있다. 컴퓨터, 휴대폰 등 통신장비를 접목시키면, 각종 통신 장비들이 서로 연결되어 데이터를 교환하거나 리소스를 공유 하는 통신망이다. 네트워크 통신 규약이 표준화되지 않았던 시절에.. 외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 2기 2023. 7. 23. Jpa로 데이터 수정 작업 후 수정된 데이터를 카프카에 전송하는 방법 API를 통해 Mysql DB에서 데이터를 등록 및 수정 작업을 마친 후, 카프카를 통해 최신화된 데이터를 다른 서버에 전송하는 로직이 있다. @Service @RequiredArgsConstructor public class Service { private final KafkaService kafkaService; private final Reader reader; private final Writer writer; @Transactional public void add(Request request) { // 데이터 저장 Entity entity = writer.save(request); // 카프카로 데이터 전송 kafkaService.send(savedEntity); } @Transactional .. Tech/JPA 2023. 2. 11. 2개 이상의 DB를 사용하는 Spring Boot 환경에서 Spring Data Jpa 사용시 트랜잭션 관련 에러 한 프로젝트에서 2개 이상의 DB를 연결해서 사용하기 위한 다중 DataSource 설정을 아래와 같이 했다. @Configuration @EnableTransactionManagement(proxyTargetClass = true) @EnableJpaRepositories( entityManagerFactoryRef = "aJpaEntityManagerFactory", basePackages = {"com.soap.repository"} ) public class ADbConfig { @Bean(name = "aDataSource") @ConfigurationProperties(prefix = "spring.a.datasource") public DataSource aDataSource() { retu.. Tech/Spring 2023. 1. 29. datagrip 으로 테이블 & 데이터 export, import 하는 법 테스트한 환경 - 윈도우 10 - mysql이 설치되어 있어야 함(mysqldump.exe 사용) 목표 - DDL과 insert문 혹은 insert문만 dump 뜨는 법 export하는 방법 1. dump 뜰 스키마에서 오른쪽 마우스 클릭 후 빨간 박스 클릭 2. mysqldump 옵션 - Path to mysqldump: 로컬에 설치된 mysqldump.exe 설정 - Tables 옵션은 많이 있는데 이름 그대로 해석이 될꺼라 생략 ( 원하는 옵션이 체크박스에 없으면 mysqldump 옵션을 검색해서 네모박스에 수동으로 추가하면 된다) - Multiple rows inserts: insert를 한번에 해야 더빠르게 삽입 가능하다. 몇만 몇십만건은 단일 insert문으로 넣을려고 하면 시간이 오래 걸린다.. IDE/datagrip 2022. 10. 28. SpringBoot, Docker Github Actions CI / CD 스프링 부트, Gradle의 bootBuildImage를 사용해 간단하게 스프링부트 도커 이미지 생성 후 Github Actions을 연동하여 서버에 배포 (필요시 Dockerfile을 커스텀하여 이미지 생성도 가능) Github Actions의 자세한 사용법은 맨 하단 출처의 블로그 참고 ./github/workflows/**.yml name: 'build-push-prod' on: push: branches: [ "main" ] # pull_request: # types: # - closed # branches: [ "main" ] jobs: build: runs-on: ubuntu-latest name: build steps: # 코드 저장소로 부터 CI 서버로 코드 pull - name: che.. 인프라/Github Actions 2022. 10. 22. Docker를 이용한 SpringBoot, Mysql 백엔드 개발 서버 구축(with centos 7.8) 환경: 센토스 7.8 목적 하나의 개발 서버에 도커 네트워크를 구성하여 Spring Applications, Mysql을 docker-compose를 이용해서 구성한다. docker 설치 # Docker 설치 # https://docs.docker.com/engine/install/centos/ 사이트 자료를 참고하여 설치한다. yum -y update yum install -y yum-utils # Docker repository 시스템에 추가 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum-config-manager --enable docker-ce-nightly # 최신버전의 Docker.. 인프라/Docker 2022. 10. 21. 나만 헷갈리는 mysql8 함수 문자함수 1. 문자열 자르기 SELECT capital_city, substr(capital_city,2,2) as substr, mid(capital_city,2,2) as mid, substring(capital_city,2,2) as substring FROM class.country - 숫자는 1부터 시작 - 3함수 모두 기능이 같음 - substr(컬럼명, 시작할 문자열의 위치 값, 리턴 시킬 값의 길이) 2, 특정 문자열 위치 찾기 SELECT capital_city, instr(capital_city, 'a') as instr_a, instr(capital_city, 'do') as instr_do, instr(capital_city, 'r') as instr_r FROM class.coun.. Database/Mysql 2022. 10. 6. 컨테이너 기반 gitlab 버전업 시나리오 https://about.gitlab.com/releases/2022/06/30/critical-security-release-gitlab-15-1-1-released/ GitLab Critical Security Release: 15.1.1, 15.0.4, and 14.10.5 Learn more about GitLab Critical Security Release: 15.1.1, 15.0.4, and 14.10.5 for GitLab Community Edition (CE) and Enterprise Edition (EE). about.gitlab.com 최근 깃랩 취약점 발생 현재 버전: 14.6.3 업그레이드 할 버전: 14.10.5 프로세스 1. 기존 도커 컨테이너 이미지화(백업) docker .. 형상관리/gitlab 2022. 7. 22. 요청으로 들어온 language 값에 따른 GlobalExceptioner에서 다국어 처리 (i18n, yml) + spring validaiton 다국어처리 기록용 직접 정의한 헤더값의 language값에 따른 예외처리 메시지 다중화 applicaiton.yml spring: messages: basename: i18n/exception encoding: UTF-8 resources/i18n/exception_eng.yml ※ 다른 포맷 사용시 그에 따른 값으로 변경 # exception_eng.yml unKnown: code: "-9999" msg: "An unknown error has occurred. SadPepe :(" userNotFound: code: "-1000" msg: "This member not exist. SadPepe :(" resources/i18n/exception_kor.yml ※ 다른 포맷 사용시 그에 따른 값으로 변경 # e.. Tech/Spring 2022. 5. 23. DeadLock 개념 데드락이란 두개 이상의 프로세스가 필요한 자원을 얻지 못해 상대방의 작업이 끝나기만을 무한정 기다려 아무 작업을 하지 못하는 상태를 가리킵니다. 위 그림은 다중 쓰레드 프로그래밍 환경에서 흔히 발생하는 데드락 문제입니다. Thread2는 A를 점유하고 있으면서 B의 자원을 요청, B의 자원을 습득할 때 까지 대기 Thread3는 B를 점유하고 있으면서 A의 자원을 요청, A의 자원을 습득할 때 까지 대기 서로 상대방이 자원을 내놓기를 바라면서 무기한 연기에 빠지는 상황 시스템 파일이나 다른 프로그램이 공유하는 파일을 건드리기 쉬운 프로그램은 설치 과정에서 "프로그램을 설치할 때는 "가능하면 다른 프로그램은 꺼주세요"라는 문장이 나오면서 모든 프로그램이 꺼지는 경우가 있는데, 이유는 데드락이 발생할 .. 운영체제 2022. 3. 18. 이전 1 2 3 4 5 6 ··· 8 다음