728x90

프로그래밍 138

깊은 복사와 얕은 복사 / 구조체와 클래스 / 값 형식과 참조 형식

값 형식과 참조 형식의 결정적인 차이점은 인스턴스의 대입이 일어날때 뚜렷해진다. struct (구조체) : 깊은 복사 => 값 형식 class (클래스) : 얕은 복사 => 참조 형식 값 형식은 값 전체가 메모리 (스택) 영역에서 복사가 된다. 따라서 구조체를 복사할 경우 내용 전체가 복사된다고 생각하면 된다. 참조 형식은 값은 힙 영역에 있고 스택영역에 힙 영역을 가리키는 주소값을 저장하는 형식이다. 밖에서 호출을 할경우 스택영역의 주소값을 호출하고, 해당 주소(힙영역)에 있는 값을 불러온다. 따라서 클래스 복사할 경우 주소값을 복사하는것이기 때문에, 원치 않는 수정이 일어날 수 있다. 1. 일반적으로 모든 사용자 정의 타입은 클래스로 구현한다. 2. 선택적으로 구조체로 구현한다. 3. 참조형식은 가비..

프로그래밍/C# 2023.10.08

CPU / 주기억장치(RAM) / 보조기억장치 / 입출력장치 / 메인보드 / 시스템버스

컴퓨터 구조의 큰 그림을 먼저 본 뒤 아래 세부 기능을 보면 좀 더 이해가 편하다. https://kyungtaek.tistory.com/68 컴퓨터 구조의 큰 그림 혼자 공부하는 컴퓨터 구조 + 운영체제 책을 공부하며 정리하였습니다. 컴퓨터 구조를 알아야 하는 이유 1. 문제 해결 능력 - 내가 작성한 코드가 컴퓨터에서 어떻게 실행되는지 이해하지 못한다 kyungtaek.tistory.com 1. CPU : 컴퓨터의 두뇌 - 메모리에 저장된 명령어를 읽어들이고 해석하며 실행한다. 내부 핵심 부품 1) ALU (산술논리연산장치) : 계산기 2) 제어장치 : 제어신호를 내보내고 명령어를 해석 - 제어신호 : 컴퓨터 부품 작동을 위한 전기신호 (대표 : 메모리 읽기신호, 쓰기신호) 3) 레지스터 : CPU ..

컴퓨터 구조의 큰 그림

혼자 공부하는 컴퓨터 구조 + 운영체제 책을 공부하며 정리하였습니다. 컴퓨터 구조를 알아야 하는 이유 1. 문제 해결 능력 - 내가 작성한 코드가 컴퓨터에서 어떻게 실행되는지 이해하지 못한다면 오류가 발생했을때 대처 능력이 떨어진다. 2. 성능, 용량, 비용을 고려한 프로그래밍 - 디지털기기는 굉장히 다양한 종류가 있는데 이러한 많은 기기에서 오류가 발생하지 않도록 최적화된 프로그램을 만들기 위해서는 컴퓨터 구조에 대한 이해가 필요하다. 컴퓨터 구조의 큰 그림 컴퓨터가 이해하는 정보는 크게 2가지가 있다. - 데이터 정보 - 명령어 정보 데이터와 명령어는 위의 큰 그림에서 보는것처럼 네가지 핵심부품들을 통해 이동을 하며 컴퓨터를 동작시킨다. 네가지 핵심부품 - CPU - 메모리(주기억장치) - 보조기억장..

VR 동영상을 Sphere 투영시 화면 불균형 해결방법

결론: 버텍스가 더 많이 있는, 삼각형이 더 많이 나누어져 있는 메쉬를 가져다가 사용하면 해결됩니다. Sphere에 동영상을 넣을때 기본 Sphere에 넣으려고 하면 동영상 윗부분과 아랫부분이 울어버리는것을 알 수 있다. 하지만 버텍스가 더 쪼개져있는 주어지는 mesh를 사용하게 되면 우는 현상이 해결된다. 나는 이것이 사진의 화소와 비슷하다고 이해했는데 삼각형의 1개를 면이라고 생각했을때 당연히 그 수가 많아지면 더 부드러운 영상이 출력될 것이고 그 수가 적어지면 끊어지는것이다. 따라서 울어버리는 현상이 차이가 난다고 이해했다. VR화면이 울게될때 64를 가져와서 넣으려고하면 오류가 발생함. 오류가 발생할때 모델에서 Read/Write 에 체크를 해주면 코드에서 읽어올 수 있게 됨

if 전처리기를 통한 플랫폼 대응 유니티 프로그래밍

전처리기의 역할 - 전처리기는 소스코드가 컴파일 될 때, 소스코드를 정리를 해주는데 사용됩니다. - 다양한 플랫폼에 대응하여 코드를 작성 시 유용합니다. 전처리기 설정 Project Settings - Player - OtherSettings - Script Compilation 에서 Define Symbols을 정의하여 실제 빌드시 실행시킬 코드를 지정을 해 줄 수 있다. * 여기서 전처리기의 역할 중 하나인 다양한 플랫폼 대응을 떠올릴 수 있다. -> 안드로이드 빌드때는 안드로이드 심볼을, IOS 빌드시에는 IOS심볼을 정의해 주면 된다. 정의를 한 뒤에는 아래와 같이 코드를 작성해주면 된다. if문과 굉장히 비슷하다 #iF #elif #endif 실제로 이번에 VR을 사용해보는 수업을 들으며 사용한..

안드로이드 AR 빌드세팅 에러

인생 유니티 AR,VR 교과서에서 AR 빌드를 위한 환경세팅을 하다가 책을 따라해도 오류가 발생하여 작성하였습니다. 책을 따라해도 생기는 오류의 경우에는 아래를 따라서 하면 해결됩니다. 오류가 발생하면 해야하는일 1. 맨 첫줄부터 아래로 20줄 읽어보기 2. 맨 아랫줄부터 위로 20줄 읽어보기 오류가 발생하면 하지 말아야 하는일 1. 중간부터 오류 읽어보기 3번을 수행하기 위해서는 Other Settings -> Rendering -> "Auto Graphics API"를 체크 해제 해준 뒤 "Vulkan"을 제거한다. (ARCore에서는 Vulkan 지원 X) Logcat을 사용했다. 휴대폰이 연결되면 끊임없이 메세지가 나오게되는데 정신이 없다. 중앙 상단에 필터에 Unity를 검색하면 Unity관련 ..

[백준_C++] 15552번 : 빠른 A+B

www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 백준 15552번의 경우 단순히 A + B를 구하는 것이 아닌 연산 속도를 고려한 문제이다. 문제에서부터 cin.tie(NULL)과 sync_with_stdio(false)를 적용해 주어야 한다고 나와있다. 관련해서 알아본 내용을 기억하고자 정리한다. C 표준 입출력인 stdio.h의 scanf()와 printf()는 매우 빠른편이라 바로 해결이 된다. C++ 표준 입출력인 cin, cout을 쓸 경우에는 시간초과가 난다. 이때..

자료형(정수형, 실수형) 범위를 알아보자

기초적인 코딩테스트 문제를 풀다보면 자료형의 범위를 초과하여 풀이에 실패하는 경우가 많아서 정확히 알고 넘어가고자 정리한다. 가장 대표적인 부분만 정리하여 기억속에 남기고자 한다. 정수형 자료형 char : 1바이트 : -128 ~ 127 short : 2바이트 : -32,768 ~ 32,767 int : 4바이트 : -2,147,483,648 ~ 2,147,483,647 long long : 8바이트 : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 1바이트는 비트 8개를 의미한다. 즉, 4바이트는 32비트를 의미하며 2의 32제곱 만큼의 크기를 갖는다. unsigned가 붙은 자료형이 있는데 이는 부호비트 1비트를 부호대신 범위를 표현하는데 사용하여..

운영체제 관련 용어

시작하세요 C# 10 프로그래밍의 책을 보고 공부한 내용을 정리하였습니다. 1. 도스(DOS) 개인용 컴퓨터 시장에서 의미가 있었던 최초의 운영체제는 마이크로소프트에서 만든 MS-DOS(Microsoft Disk Operating System)이다. 문자 방식 사용자 인터페이스(CUI: Character User Interface)로도 유명하다. 현재는 윈도우의 명령프롬프트(Command Prompt)에서 흔적을 만날 수 있다. 2. 윈도우 운영체제 마소에서 MS-DOS에 이어 출시한 그래픽 기반 사용자 인터페이스(GUI: Graphic User Interface)를 제공하는 운영체제이다. 컴퓨터에 연결되는 모든 장치를 추상화하여 프로그래머에게 공통된 소프트웨어 개발 방식을 제공하는 것이 주요 목표였다...

하드웨어 기본 지식

1. 중앙 처리 장치 (CPU: Central Processing Unit) 고유한 기계어를 가지며, 그것을 해석할 수 있는 장치이다. 기본적으로 연산/계산을 담당한다. 클럭속도와 코어 수, 캐시메모리 등이 기능을 좌우한다. 캐시메모리는 CPU내부에 있는 기억장치이다. 주기억장치 및 보조기억장치와의 정보교환은 캐시메모리와의 교환에 비해 느리기 때문에 캐시메모리 용량이 크다면 그만큼 CPU의 기능이 좋다는것을 의미한다. CPU의 아키텍쳐에 따라서도 많은 차이를 나타낸다. 2. 레지스터 (Register) CPU 내에 존재하는 기억장소이다. 극히 소량의 데이터나 처리중인 중간 결과를 일시적으로 기억해 두는 고속의 전용 영역이다. 산술연산, 논리 연산, 전송 조작을 행할 떄 데이터나 명령을 일시적으로 기억해 ..

728x90