콘텐츠로 이동

2021 04 28

2021-04-28

Service의 역할 중 트랜잭션

  • 참고: https://goddaehee.tistory.com/167
  • 트랜잭션의 정의 - 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들
  • 트랜잭션의 성질 1. 원자성 - 한 트랜잭션 내에서 실행한 작업들은 하나로 간주 2. 일관성 - 일관성 있는 DB 상태를 유지 3. 격리성 - 동시에 실행되는 트랜잭션들은 서로 영향을 미치지 않도록 격리 4. 지속성 - 트랜잭션을 성공적으로 마치면 항상 결과가 저장될 것
  • 스프링 트랜잭션 - @Transactional 메서드가 포함되면, 정상 여부에 따라 Commit, Rollback 함

클라우드 수업 복습

  • Public Cloud - Cloud란 인터넷을 은유적으로 표현 - Cloud Computing: 서버/DB/NW 등 컴퓨팅 리소스를 인터넷 통해 관리 - 서비스...
    - 파일/DB 등 저장소의 데이터를 - 서버에서 원하는 형태로 가공해 - NW를 통해 사용자에게 전달하는 것 - 기존에는 이걸 다 우리가 관리한다? -> 굳이? - 개인 PC에서 서비스 하기 - 백업? 보안? - 맨날 켜둬? 다른 프로그램 쓰면? 망가지면? - 외부에서 접근 방법은? 몇명이나 쓸 수 있지? - 사무실 서버로 서비스 하기 - 다른 팀과 데이터/배포본/파일 공유는? 디스크 망가지면? - 장비관리, OS 설치는? 서버 전원 나가면? 에어컨 둬야겠지? 유휴장비는? - 사무실 서버 공격받으면? 네트워크 장비 관리는? - 데이터 센터로 서비스 - 이중화 구성? 장기 백업? - Rack 관리? - 여러대의 서버 관리 틀 - 배포 구성? - DDoS? 보안 구성? - 관심사의 분리 - 서비스 제공자는 "서비스의 구성" 이 Core Value - 어떤 대상에게 서비스 할 것인가? - 웹/앱/API - 인증/인가 - 사용자가 원하는 것은 무엇인가? - 조회 조건 - 데이터의 형태 (JSON, XML) - 데이터의 주기 - 데이터 정합성, 무결성 등
  • 리눅스 명령어 - curl wgetip.com
    - 해당 인스턴스의 ID - "->" 심볼릭 링크 == 참조 == 바로가기 - /etc/ 에서 여러가지 설정들이 가능 - ifconfig - eth0 - 랜카드가 리눅스에 장착되었을 때 인식 - MAC 주소 - 무선 LAN 카드 또는 무선 LAN 기능 내장 기기에 개별적으로 부여되는 16진수 12자리의 단말 식별 번호 - /var/log - 애플리케이션 동작시 syslog에 많이 쌓임 - ps -ef | grep daemon - grep: 텍스트 검색 - ps: 현재 사용중인 프로세스 - pstree -p - systemd(1) - pid 값 fork 받아서 자식 프로세스들 - 하나의 프로그램을 실행시키는 pid를 할당받아 메모리에서 동작하는 중 - /proc - 프로세스 정보 - nslookup - DNS를 IP주소로 알아보기
  • 리눅스 질문 - 명령어를 친다는 것? - 경로에 있는 프로그램을 실행한다는 것 - Shell이란? - OS와 관련된 시스템 프로그램 - 쉘은 커널과 사용자간의 다리역할 - 사용자 입장에서 OS와 소통할 수 있는 마지막 프로그램 - 환경변수란? - 참고: https://blog.naver.com/PostView.nhn?blogId=zxwnstn&logNo=221521038431&proxyReferer=https:%2F%2Fwww.google.com%2F - 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임 - OS에서 자식 프로세스 생성 시, 참조하는 변수들 - path: OS가 어떤 프로세스 실행시킬 때, 그 경로를 찾는데 이용됨 - window에서 path 변수를 등록해주면 전역에서 해당 디렉토리의 하위 파일 실행가능 - rsa? - 공개키 암호화 알고리즘 - RSA-2048 암호화 -> 인터넷 뱅킹 - Public Key와 Private Key가 쌍을 이루며, Private Key로 암호화 한 내용은 Public Key로만 해독 가능 - 엄청 큰 숫자는 소인수분해하기가 어렵다는 성질을 사용 - daemon? - 참고: https://blogger.pe.kr/770 - OS에서 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램 - syslogd 에서 마지막에 "d" 붙은 친구가 데몬 - inetd, httpd, nfsd, sshd, named, lpd - 일반적으로 프로세스로 실행됨 - 대개 부모 프로세스를 갖지 않음 (PPID가 1) - 포그라운드 프로세스 - 사용자와의 대화창구인 표준IO(터미널, 키보드 등)로 대화 - 백그라운드 프로세스 - 입력 장치에 대해 터미널과의 관계를 끊은 모든 프로세스 - 사용자에게 키보드를 통해 전달받지 않고 스스로 동작하는 프로세스 - sshd - 이게 bash를 실행시키고 뒤로 물러나있음 - "&"을 붙이면 명령어 백그라운드로 실행됨 - 데몬 프로세스 - 백그라운드 프로세스 중에서 부모 프로세스가 1 혹은 다른 데몬 프로세스인 프로세스 - 가령 vi & 를 통해 vi를 백그라운드로 실행해보자 - 그럼 vi & 는 ppid로 bash를 갖는다 - bash를 kill, 그니까 exit을 하면, - pid bash가 죽고, 자식 프로세스도 같이 죽음 (고아?) - 따라서 백그라운드 프로세스가 부모 프로세스로 1 혹은 다른 데몬 프로세스를 가지자 - "웹 서버"가 대표적인 데몬 프로세스 - PPID가 1인 httpd 프로세스와 PPID가 1인 프로세스를 PPID로 갖는 httpd 프로세스 생성 - PPID가 1인 프로세스는 바로 root에 접근가능해서 위험 - DNS Cache? - DNS Cache란 임시적인 저장소로써, OS나 웹브라우저에서 전에 찾아봤던 DNS를 기록해 둔다
  • 통신이란? - OSI 7 Layer? - 프로토콜은 010101 짤라서 쓰는 거 - 그냥 외우세요!
  • 통신과정을 확인할 때 - Ping Check - IP만으로 서버에 요청이 가능한지 검증 - ICMP 프로토콜 사용 - 네트워크 에러에 대처 담당하는 프로토콜 - traceroute로는 RTT을 알려줌 - RTT: 패킷 하나가 왕복한 시간 - 병목 발견 가능 - Port Check - 서비스의 정상 구동 여부 확인 가능 - telnet IP Port - 어플리케이션 띄우면 소켓이 생성됨 - 파일 디스크립터 - 어플리케이션에 연결된 포트로 stream으로 데이터 전송 - Http Check - curl을 통한 HTTP 응답 확인