분류 전체보기 52

TIL 20241113 (레이스 컨디션과 동기화)

어제 들은 이론강의를 다시 보면서 간단하게 정리해보았다.(레이스 컨디션과 동기화, 데드락의 개념과 간단한 주요사항)레이스 컨디션여러 스레드가 동시에 공유 자원에 접근하여 의도치 않은 결과과 나오는 상황 원인공유 자원에 대한 동기화되지 않은 접근문제점예측 불가능한 동작, 데이터 손상, 프로그램 비정상 종료방지 방법뮤텍스(Mutex), 세마포어(Semaphore), 락 (Lock), 모니터 (Monitor)뮤텍스하나의 스레드가 자원을 사용 중일 때 다른 스레드의 접근을 막는다세마포어동시에 접근할 수 있는 스레드의 수를 제한한다락특정 코드 블록에 대해 스레드가 순차적으로 접근하도록 제한한다모니터락과 조건 변수를 결합하여 스레드가 특정 조건을 만족할 때까지 대기하도록 한다  데드락여러 프로세스가 서로 자원을 기..

TIL 20241107 (두 개 뽑아서 더하기 - 알고리즘)

두 개 뽑아서 더하기 풀이 코드function solution(numbers) { let answer = []; for(let i = 0; i a-b);}  설명function solution(numbers) { let answer = [];solution 함수를 만들고 numbers를 매개변수로 받는다.answer 빈 배열 생성  for(let i = 0; i 이중 for문을 이용해 첫 위치와 다음 위치 합을 더해 answer 배열에 저장첫 번째 for문은 배열의 첫 번째 부터 마지막 까지 순회  for(let j = i + 1; j 두 번째 for문은 i의 다음 인덱스부터 배열의 끝까지 순회 (i + 1)  answer.push(numbers[i] +..

TIL 2024.11.07

TIL 20241105 (숫자 문자열과 영단어 - 알고리즘)

숫자 문자열과 영단어 풀이 코드 function solution(s) { let answer = ''; const numbers = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9, }; let currentWord = ''; for (let i = 0; i = '0' && char   설명function solution(s) {문자열을 여러 번 슬라이스하고 각 영단어를 반복해서 검색하는 방식의 함수solution 함수를 만들고 numbers를 매개변수로 받는다.  let ..

TIL 2024.11.05

TIL 20241102(멀티 쓰레딩)

멀티 쓰레딩하나의 프로세스 내에서 여러 개의 스레드를 동시에 실행하고 관리하는 기술 1. 프로세스와 스레드란?프로세스 : 현재 실행중인 프로그램의 객체이다.                  독립적은 메모리 공간을 가지고 운영 체제에 의해 관리된다.스레드 : 프로세스 내에서 실행되는 작은 실행 단위이다.              같은 프로세스 내에서 메모리 공간을 공유하고 스레드 간의 통신이 빠르고 효율적이다. a. 메모리 영역힙 영역 : 동적으로 할당된 메모리가 저장되는 공간이다.               프로그램 실행중에 크기가 변할 수 있다.스택 영역 : 함수 호출 시 지역 변수와 매개변수가 저장되는 공간이다.                   스택은 LIFO(Last  in first out) 구조로 동..

TIL 20241029(알고리즘 - 이상한 문자 만들기)

이상한 문자 만들기  풀이 코드function solution(s) { let result = []; let arr = s.split(" "); for(let i = 0; i 설명function solution(s) {solution 함수 정의문자열 s를 받는다.  let result = [];결과를 저장할 빈배열 result 생성  let arr = s.split(" ");문자열 s를 공백을 기준으로 해  배열 arr로 저장  for(let i = 0; i상황에 따른 대문자 소문자 변환 for 문 (arr 배열)  let str = "";빈 문자열 str 만듬 (초기화)  for(let j = 0; jj가 짝수면 문자를 대문자로 바꿔 st..

TIL 2024.10.29

TIL 20241024 (모의면접 준비)

1. 전송 계층 프로토콜데이터 통신에서 송신자와 수신자 간의 데이터를 관리하는 역할을 하는 전송계층은 TCP와 UDP 프로토콜이 있다. TCP(전송 제어 프로토콜)연결지향적이고 데이터의 신뢰성을 보장한다.데이터 전송 중 오류가 생기면 재전송을 해 오류를 수정한다흐름 제어 및 혼잡 제어 기능이 있다.UDP(사용자 데이터그램 프로토콜)비연결 지향적이고 빠른 데이터 전송이 목적이다.오류 수정 기능이 없고 데이터에 순서가 없다. 1 - 1 IP의 한계 (UDP)신뢰할 수 없는 통신과 비연결성 통신을 수행하는 한계가 있다.신뢰성의 부족비연결성 통신이여서 패킷이 목적지까지 제대로 전송되었는지 모른다.혼잡 제어 부족네트워크 혼잡상황에도 계속해서 패킷을 전송한다. (패킷 손실 가능)  1 - 2 오류 제어 & 흐름제어..

TIL 2024.10.24

TIL 20241022 (Unity)

Unity게임 개발자들이 게임을 디자인, 개발, 배포를 위해 도구와 기능을 제공해주는 크로스 플랫폼 게임엔진이다.Unity의 기본 프로그래밍 언어는 C#으로 객체 지향 프로그래밍 개념을 지원한다. 주요 특징크로스 플랫폼 지원한 번의 개발로 여러 플랫폼에 배포할수 있는 장점이 있다.강력한 에셋 스토어개발자는 다양한 3D 모델, 텍스터, 스크립트, 애니메이션 등을 구매하거나 무료로 쉽게 찾아 사용할 수 있다.그래픽스2D와 3D 그래픽스를 지원하고 고급 랜더링 기능이 있다.HDRP(High Definition Render Popeline)와 URP(Universal Render Popeline) 를 통해 다양한 그래픽 스타일을 구현이 가능하다. 주요 기능프로젝트 관리새로운 프로젝트 생성, 프로젝트 파일 구성 ..

TIL 2024.10.22

TIL 20241015 (객체 지향 프로그래밍)

객체 지향 프로그래밍객체는 현실 세계의 물체나 개념을 소프트웨어 쪽으로 옮긴 것이다.1. 개념객체들의 유기적인 협력과 결합으로 독립된 객체들로 이해하는 방법론이자 패러다임이다. 객체 : 객체 지향 프로그래밍의 가장  기본적인 단위이자 시작점이다.          속성과 메서드를 포함하는 데이터 구조이다. 2. 네가지 특징추상화사물이나 표상을 어떤 성질, 공통성, 본질을 모아 상위 개념으로 새롭게 정의하는 것 (간결하게)캡슐화중요한 정보를 외부로 노출시키지 않도록 하는것 (응집도 높이고 결합도는 낮추고)상속하나의 클래스가 가진 특징을 다른 클래스가 그대로 물려 받는 것 (함수, 변수 및 데이터)다형성동일한 메서드나 함수 명을 사용해도 클래스마다 그 메서드가 다르게 동작하는것 표상 : 추상적이거나 드러나지 ..

TIL 2024.10.15

컴퓨터의 메모리

1. 개념CPU가 데이터를 빠르게 읽고 쓸 수 있게 하는 장치다.주기억장치는 RAM이고 현재 실행 중인 프로그램과 데이터를 저장한다.보조기억장치는 하드 드라이브(HDD), SSD 등으로 데이터를 영구적으로 저장하는 역할을 한다. 2. 주소공간메모리에서 각 데이터나 명령어가 위치하는 주소를 의미한다.컴퓨터는 각 메모리셀에 고유주소를 할당해 CPU가 데이터를 빠르게 읽을 수 있도록 한다.주소의 종류에는 2가지가 있다.물리적 주소 : 실제 메모리 하드웨어에서의 주소논리적 주소 : 프로그램이 사용하는 주소로 운영체제가 메모리 관리를 통해 물리적 주소로 매핑한다.주소 공간의 크기는 시스템 아키텍처에 따라 달라진다.예를 보면 32비트 시스템은 최대 4GB(2^32)의 주소 공간을 가질 수 있고 64비트 시스템은 1..