728x90

전체 글 347

CS 강의 4. 쓰레드와 쓰레드풀

출처 : 내일배움캠프 Summary : 쓰레드는 프로세스 내 실행되는 실행 단위로, 쓰레드 풀은 쓰레드를 미리 생성하고 작업 처리에 사용되는 쓰레드의 개수를 제한한다. 그 쓰레드로 작업 큐에 있는 작업을 하나씩 처리한다. 쓰레드 풀의 장점은 쓰레드를 생성/수거할 때 비용이 들지 않고 쓰레드 풀을 미리 만들어 두기 때문에 소요되는 시스템 리소스를 최적화할 수 있다. 하지만 쓰레드 풀에 쓰레드를 너무 많이 생성하고 사용하지 않는 경우에는 메모리 누수로 이어진다 0. 프로세스와 쓰레드 0 - 1. 프로그램 실행 주체 : 프로세스 (ex : 하나의 건물(컴퓨터)에서 다양한 가게(프로세스)가 있고, 각 가게에는 주문을 처리하는 직원(쓰레드)가 있다) - 각 프로세스는 배정된 공간과 메모리가 있다 0 - 2. 작업..

개발공부/CS💻 2023.10.25

10. 16 TIL : 참조 복사와 값 복사에 따른 결과 차이 케이스

https://school.programmers.co.kr/learn/courses/30/lessons/181881 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr프로그래머스 : 조건에 맞게 수열 변환하기 2 이 문제를 풀다가.. 처음 시도한 코드 : class Solution { public int solution(int[] arr) { int answer = 0; int[] arrTmp2 = new int[arr.length]; int[] arrTmp = new int[arr.length]; System.arraycopy(arrTmp, 0, arrTmp2,..

TIL, WIL/TIL📘 2023.10.16

CS 강의 3. 프로세스 생명주기와 프로세스 메모리

출처 : 내일배움캠프 0. 프로그램과 프로세스 0-1. 프로그램이 저장되어 있는 곳 : 보조 기억장치 0-2. 프로그램이 로딩되는 곳 : 주 기억장치 0-3. 프로그램을 실행하는 주체 : 프로세스 0-4. 작업을 처리해주는 주체 : 쓰레드 ~ 스레드는 필요시마다 생성되며, 프로세스 상세의 수는 최근 평균 쓰레드 개수 통계값 0-5. 프로세스 상태변화 복습 https://cdaosldk.tistory.com/264 CS 강의 2. CPU와 메모리 심화 출처 : 내일배움캠프 1. CU의 핵심 기능 : 스케줄링 1) 스케줄링 소개 - 프로그램을 실행하는 주체 = 프로세스 ex) 카톡 실행 - 작업을 처리하는 주체 = 스레드 ex) 카톡 메세지 송수신 CPU를 잘 사용하 cdaosldk.tistory.com 1..

개발공부/CS💻 2023.10.03

9월 백엔드 챌린지 정리 : 클린 코드 (1)

1. 의미있는 이름 의도를 분명히 밝혀라 - 클래스로 정의하기 이름을 정할 때 1) 존재 이유 2) 수행 기능 3) 사용 방법 정보를 잘못 전달하지 말 것 1) 약속된 용어에 대한 사용 ex) String accountList = "송혜교, 전지현, 김태희, 고소영"; (X) -> List를 쓰는 것은 List 타입일 때 사용해야 정보를 올바르게 전달할 수 있다 2) 유사한 이름을 사용하지 않는다 3) 개념 단위로 묶을 때 유사 표기법을 사용하기 4) 구분하기 어려운 대문자/ 소문자 사용 지양 의미있게 구분하기 : 각 메서드 뒤에 1, A, B 등으로만 구분하는 것은 좋지 못한 구분이다 발음하기 쉬운 이름짓기 검색하기 쉬운 이름 사용하기 인코딩 피하기 이름에 데이터 타입을 명시하는 것은 이후 형변환 등으..

8월 백엔드 챌린지 : 도커 프로 (3)

1. 컨테이너 오케스트레이션 툴 - GCP GKE(Google Kubernetes Engine) - AWS EKS(Elastic Kubernetes Services) ECS(Elastic Container Service) 기능 - 컨테이너 클러스터링 ~ 여러 대의 노드를 하나의 클러스터로 묶어, 어플리케이션을 분산 실행하고, 자원을 효율적으로 활용 ~ 여러 대의 물리적인 또는 가상의 서버를 하나의 시스템처럼 동작하게 하는 기술 ~ 컨테이너를 실행하는 호스트의 자원을 효율적으로 분배, 컨테이너가 안정적으로 실행되도록 함 ~ 여러 대의 컨테이너를 묶어 하나의 서버처럼 사용할 수 있도록 지원 - 서비스 디스커버리 ~ 컨테이너를 자동으로 발견하고, 서비스 이름과 IP주소 등을 관리해 어플리케이션 간 연결을 관리..

8월 백엔드 챌린지 : 도커 프로 (2)

1. 도커 명령어(Docker CLI) 1) 레지스트리에서 이미지 다운로드 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 2) 이미지 목록 docker images [OPTIONS] [REPOSITORY[:TAG]] 3) 이미지에서 새 컨테이너 만들고 실행하기 docker run [OPTIONS] CONTAINER [CONTAINER...] 4) 컨테이너 로그 페치 docker logs[OPTIONS] CONTAINER 5) 실행중인 컨테이너 정지 docker stop [OPTIONS] CONTAINER [CONTAINER...] 6) 컨테이너 제거 docker rm [OPTIONS] CONTAINER [CONTAINER...] 7) 이미지 제거 docker rm [OPTION..

이펙티브 자바 읽고 정리해보기 1.

아이템 1 : 생성자 대신 정적 팩토리 메서드를 고려하라 클래스의 인스턴스를 얻을 때 일반적으로 public 생성자를 활용한다. 이 때 정적 팩터리 메서드를 활용하는 방법도 있다 예시) public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 기본 타입인 boolean 값을 받아 Boolean 객체 참조로 값을 반환한다 정적 팩터리 메서드 방식의 장점 1. 이름을 가질 수 있다 생성자는 그 자체로는 어떤 이유로 생성하는 지, 무엇이 반환되는 지를 제대로 설명할 수 없다. 정적 팩터리 메서드는 이를 잘 설명할 수 있다 하나의 메서드 시그니처로는 하나의 생성자를 만들 수 있기 때문에, 생성자만을 사용해 인스턴스를..

09. 22 TIL : SQL 다이나믹 쿼리

SQL 다이나믹 쿼리에 대해 학습하고 실무에 적용해봤다. 파라미터로 설정된 VO에서 넘어오는 값에 대해 이해하고, 해당 값을 조건으로 활용한 조건문과 에 대해 더욱 깊이 이해할 수 있었다. JPA에서는 내가 직접 쿼리를 작성하지 않았으므로 새로운 세상을 만나는 기분으로 배우고 있다. 나중에 언젠가 C를 접할 일이 있다면, 언어에서도 이런 기분을 느낄 수 있을지..

TIL, WIL/TIL📘 2023.09.22

8월 백엔드 챌린지 : 도커 프로 (1)

1. Docker란? - 오픈 플랫폼 - 어플리케이션을 인프라에서 분리해준다 - 신속하다 - 인프라를 어플리케이션을 관리하는 것처럼 관리할 수 있다 - 코드 배포에 용이하다 - 컨테이너 기반 가상화 도구 - 어플리케이션을 컨테이너라는 단위로 격리해 실행하고 배포하는 기술 2. 컨테이너란? - 컨테이너는 가상화 기술 중 하나 - 호스트 운영체제 위 여러 개의 격리된 환경을 생성 - 각각의 컨테이너 안에서 어플리케이션 실행 3. 가상화 기술이란? - 하나의 물리적인 컴퓨터 자원(CPU, 메모리, 저장장치) 등을 가상적으로 분할해 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술. 이를 통해 물리적인 컴퓨터 자원을 더육 효율적으로 사용할 수 있으며, 서버나 어플리케이션을 운영할 때 유연성과 안정성을 제공한다 하..

728x90