전체 글

· TIL
프로세스와 스레드 프로세스 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 ex) 카카오톡 스레드 : 어떤 프로세스 내에서 실행되는 흐름의 단위 ex ) 다운로드 운영체제가 프로그램에 메모리를 할당하여 실행하면 이를 프로세스라고 하는데 CPU의 프로세서는 하나의 프로세스만 구동할 수 있다. 운영체제는 하나의 CPU로 여러개의 프로세스를 구동하기 위해 '시분할 방식'을 사용한다. 반면 스레드는 프로세스 내에서 실행되는 흐름의 단위이므로 특정프로세스에 반드시 포함된다 = 하나의 프로세스는 하나 이상의 스레드를 갖는다. 프로세스 내에서도 처리흐름이 여러개가 될 수 있다. 회고 더보기 12시간중 많은 시간을 온전하게 집중하기는 어려워 차근차근 집중시간을 늘려가려고한다. 내일은 CS 동기화 파트를 공부할 ..
· CS 지식
1. CPU (Central Processing Unit) CPU는 컴퓨터의 두뇌라고 말할 수 있다. 메모리에 저장된 값을 읽어서 해석하고 실행하는 장치이다. CPU는 작업을 빠르게 연산하고 작동하는데 기능이 집중되어 있다. 또 CPU는 계산기라고도 얘기할 수 있다. 1) CPU의 구조 내부 모듈에는 산술/논리 연상 장치(ALU), 제어 장치, 레지스터가 있고 이들을 내부 버스로 연결한다. (1) 레지스터 CPU 내부의 작은 임시 저장 장치이다. 프로그램을 실행하는데 필요한 값들을 임시로 저장한다. CPU안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다. (2) ALU 쉽게 말해 계산기, 계산만을 위해 존재하는 부품 컴퓨터 내부에서 수행되는 대부분의 계산을 도맡아서 수행 (3) ..
· CS 지식
1. Git vs Github Git은 버전 관리 시스템, Github은 Git으로 관리하는 프로젝트를 올려놓을 수 있는 사이트 1) Git - 소스 코드 버전 사이를 오가는 시간 여행 이상의 기능을 제공 - 데이터를 저장할 공간만 있다면 어디서나 사용 가능 2) Github - 소스 코드를 올려 두면 시간, 공간의 제약없이 협업 가능 - 내 작업물을 다른 사람과 공유할 수 있고, 반대로 다른 사람의 작업물을 받아와서 작업 가능 2. Github 기본 용어 정리 1) Local/Remote - Local : 우리가 사용하고 있는 컴퓨터 - Remote : 원격 저장소 2) Repository(repo, 저장소) - 프로젝트가 존재하는 저장 공간 3) Branch - Repo의 공간에서 독립적으로 어떤 작..
AWS에서는 관리형 서비스인 RDS(Relational Database System)을 제공한다. 클라우드 기반 관계형 데이터베이스로 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다. 또 추가로 조정가능한 용량을 지원하여 예상치 못한 양의 데이터가 쌓여도 비용만 추가로 지불하면 정상적인 실행이 가능하다. 1. RDS 인스턴스 실행 검색창 RDS 입력 > 대시보드에서 [데이터베이스 생성] MariaDB를 고른 이유는 가격과 Amazon Aurora 교체 용이성이 있기 때문이다. 첫번째, RDS의 가격은 라이센스 비용 영향을 받는다. 상용 데이터베이스인 오라클, MSSQL이 오픈소스인 MySQL, MariaDB, ..
1. 클라우드란? 외부에서 본인의 서비스에 접근하려면 24시간 작동하는 서버가 필수이고 이를 구축하기 위해서는 3가지 선택지가 있다. 집에 PC를 24시간 구동 호스팅 서비스(Cafe24, 코리아호스팅 등)을 이용 클라우드 서비스(AWS, AZURE 등)을 이용 일반적으로 비용은 호스팅 서비스나 집 PC를 이용하는 것이 저렴하고, 특정 시간에만 트래픽이 몰린다면 유동적으로 사양을 늘릴수 있는 클라우드가 유리하다. 1) 클라우드란? 클라우드 서비스는 클라우드(인터넷)을 통해 서버, 스토리지, 데이터베이스, 네트워크 등의 컴퓨팅서비스를 제공하는 것이다. 2) 클라우드 형태 (1) Infrastructure as a Service(IaaS) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스..
1. 어노테이션 기반으로 개선 일반적인 프로그래밍에서 같은코드가 반복적되는 부분은 대표적으로 개선이 필요한 나쁜코드이다. 같은 코드를 계속해서 복사/붙여넣기로 반복하게 된다면 이후 수정할 때에도 모든 부분을 하나씩 찾아가며 수정해야한다. 이럴 경우 유지보수성이 떨어질 수 밖에 없고, 만약 수정이 반영되지 않은 반복 코드가 있다면 문제가 발생할 수 밖에 없다. 앞서 만든 코드중 IndexController에서 세션을 가져오는 부분을 개선할 필요가 있다. SessionUser user = (SessionUser) hyttpSession.getAttribute("user"); index 메소드 외에 다른 컨트롤러와 메소드에서 세션값이 필요하면 그때마다 직접 세션에서 값을 가져와야 한다. 같은 코드가 계속해서 ..
1. 스프링 시큐리티와 스프링 시큐리티 OAuth2.0 클라이언트 스프링 시큐리티는 막강한 인증과 인가 기능을 가진 프레임워크로, 사실상 스프링 기반의 애플리케이션에서는 보안을 위한 표준으로 보면 된다. 스프링의 대부분 프로젝트들처럼 확장성을 고려한 프레임워크이다 보니 다양한 요구사항을 손쉽게 추가하고 변경할 수 있다. 많은 서비스에서 왜 소셜 로그인을 사용하는 걸까? 직접 구현 시에는 로그인 시 보안, 회원가입 시 이메일 혹은 전화번호 인증, 비밀번호 찾기, 비밀번호 변경, 회원정보 변경을 모두 구현해야한다. 이를 모두 구글, 페이스북, 네이버등에 맡기게 되면 서비스 개발에 집중할 수 있기 때문이다. 2. 구글 서비스 등록 구글 서비스에 신규서비스를 생성해야한다. 여기서 발급된 인증정보(clientId..
1. 전체 조회 화면 만들기 1) index.mustache UI 변경 {{>layout/header}} 스프링 부트로 시작하는 웹 서비스 Ver.2 ... 게시글 번호 제목 작성자 최종 수정일 {{#posts}} {{id}} {{title}} {{author}} {{modifiedDate}} {{/posts}} {{>layout/footer}} (1) {{#posts}} - posts라는 List를 순회 - java의 for문과 동일하게 생각 (2) {{id}} 등의 {{변수명}} - List에서 뽑아낸 객체의 필드를 사용 2) PostsRepository 인터페이스에 쿼리 추가 - PostsRepository.java import org.springframework.data.jpa.repository..
빨간망토감자도리
말하는 감자