기초공부
18 posts
C 언어 파일 입출력

C 언어 파일 입출력 개요 C 언어에서 파일 입출력은 데이터를 파일에 저장하고, 파일에서 데이터를 읽어오는 작업을 의미한다. 이를 통해 프로그램은 영속적인 데이터를 다룰 수 있다. C 언어는 표준 라이브러리를 통해 파일 입출력을 지원한다. 파일 열기와 닫기 파일 열기 () 함수는 파일을 열고, 파일에 대한 포인터를 반환한다. 파일을 열 때는 모드를 지정해야 한다. 주요 모드는 다음과 같다: : 읽기 모드 (파일이 존재해야 함) : 쓰기 모드 (파일이 없으면 생성, 있으면 덮어씀) : 추가 모드 (파일이 없으면 생성, 있으면 끝에 추가) : 읽기 및 쓰기 모드 (파일이 존재해야 함) : 읽기 및 쓰기 모드 (파일이 없으면 생성, 있으면 덮어씀) : 읽기 및 추가 모드 (파일이 없으면 생성, 있으면 끝에 추가) 파일 닫기 () 함수는 열린 파일을 닫는다. 파일을 닫지 않으면 데이터 손실이나 메모리 누수가 발생할 수 있다. 파일 쓰기 문자 단위 쓰기 () 함수는 파일에 문자를 쓴다…

Jetson Nano eMMC 리눅스 설치

VMware 가상머신 설치 최신버전 설치 후 Create New Virtual Machine 클릭 리눅스 우분투 iso 파일이 필요함 Ubuntu 18.04.6 LTS 설치 최신버전 우분투는 나노젯슨 JETPACK이 설치되지 않아서 진행하다 막히게된다 반드시 해당 버전을 찾아서 설치할 것 VMware 로 돌아와서 디스크 사이즈는 100GB 이상 메모리는 8GB 이상 으로 설정해서 만든다 우분투 사용자이름 및 비밀번호 입력 후 팝업창이 뜨면 우분투 관련 업그레이드 거절하기 No, don’t send system info Don’t Upgrade Remind Me Later NVIDIA SDK MANAGER 설치 VMware 우분투에서 파이어폭스에 들어가서 아래주소 검색 https://developer.nvidia.com/nvidia-sdk-manager deb 파일로 다운로드 후 설치 (회원가입 후 이메일로 로그인해야 다운가능, 실행 후에도 계정 필요) 젯슨 나노 OS 설치 시작…

Visual Studio 필드변수 언더바 자동생성

필드 변수 언더바 자동 생성 생성자 매개변수에서 Control + . 을 누르면 필드 변수를 자동으로 생성할 수 있음 이때 선언된 필드 변수를 선택하고 Control + R + R 를 눌러 언더바를 붙인 변수명을 사용하게 되는데 이를 자동화 하는 방법이 있음 도구 -> 옵션 -> 텍스트편집기 -> C# -> 코드스타일 -> 명명 명명스타일 관리 -> +클릭 -> 스타일 제목 작성 필수 접두사 칸에 _ 입력 대문자 표시 칸에서 카멜 대/소문자 이름 선택 -> 확인 -> 확인 사양 관리 -> + 클릭 -> 제목입력 (ex : 필드변수_자동생성) 좌측의 모두 선택취소 버튼 클릭 -> 모두 꺼진 상태에서 필드만 체크 우측상단의 모두선택취소 버튼 클릭 -> 마찬가지로 private 만 체크 -> 확인 -> 확인 하단의 + 버튼 클릭 -> 사양에서 Pravate Fields -> 필수스타일에서 만든제목 선택 심각도는 리펙터링만을 선택을 체크 -> 확인 까지 작업하면 필드변수를 생성할 때 언더…

Visual Studio 유용한 단축키

Control + K + E 코드 정리 기능 설정 : 분석 - 코드정리 - 코드정리구성 에서 커스터마이징 가능 불필요한 Using 제거 / 정렬 사용하지 않는 변수 제거 불필요한 캐스트 제거 암시적/명시적 형식 기본 설정 적용 자동 적용 시키는법 Control + Q -> Cleanup -> 프로필 저장 시 코드정리 선택 -> 런코드.. 선택 Control + \ + T 작업목록 기능 주석을 이용해서 토큰 : 설명 식으로 작성한 작업목록 리스트를 작성하고 관리할 수 있음 목록화 해서 커멘드를 누르면 작업 목록 리스트를 호출함 토큰 추가하는법 도구 - 옵션 - 환경 및 작업 목록 : 토큰 목록 (추가) 상하화면분할 원하는 탭의 스크롤바 상단 드래그 버튼을 잡고 내리면 분할됨 (분할된 화면의 상단바를 도로 끌어올리면 원상복귀) 관련코드 윈도우창 호출 특정 코드의 정의를 보고 싶으면 F12 를 누르면 그 코드가 선언된 스페이스로 넘어감 ALT+F12 를 누르면 작은 크기로 스페이스가 호…

C# 배열 인덱싱

배열 인덱싱 ‘^연산자’ 8.0 버전부터 사용할 수 있게 된 ^ 연산자를 이용해서 뒤에서부터 접근할 수 있다 Linq를 이용하여 배열 자르기 Skip 과 Take 를 통해 가져오는 방식을 사용하면 배열의 Range 를 넘어선 요소를 선택하게 되더라도 오류가 발생하지 않는 구조적 차이가 있다 배열 인덱싱 ‘^연산자’ Linq를 이용하여 배열 자르기

C# 데이터타입과 형변환

형변환 박싱과 언박싱 as operator (참조 형식을 다른 참조형식으로 변환, 실패시 null 반환) Convert (데이터 타입 변환) 배열 형변환 데이터 타입 int == System.Int32 string == System.String bool == System.Boolean object : C# 모든 데이터 타입의 최상위 기본 클래스, 박싱/언박싱 가능 리터럴 소스 코드에서 값을 나타내는 고정된 값 컴파일 시간에 값을 결정함 실행 시간에 변경 되지 않음 스택 메모리 스택 메모리는 함수 호출과 관련된 변수, 지역 볓수 및 매게변수를 저장하는 데 사용됨 (후입선출 방식으로 관리됨, 메모리 할당과 해제가 자동이며 매우 빠름) 힙 메모리 프로그램 실행 도중 동적으로 할당되고 해제되는 변수와 데이터를 저장하는 데 사용됨 (메모리 할당과 해제를 명시적으로 프로그래머가 수행해야하지만 C#에서는 GC가 자동으로 처리함) 클래스, 인터페이스, 배열, 대리자, 객체, 문자열 등이 C# 참…

C언어 동적 메모리 관리와 함수 포인터

들어가기 전에 힙과 스택부터 알기 힙(Heap)과 스택(Stack)은 프로그램 실행 중에 메모리를 관리하는 두 가지 주요 영역이다. 이 두 영역은 메모리 할당과 해제, 사용 방식에서 차이가 있다. 스택 메모리 특징 고정 크기: 스택 메모리는 일반적으로 프로그램이 시작될 때 고정된 크기로 할당된다. 빠른 할당 및 해제: 메모리 할당과 해제는 매우 빠르게 이루어진다. 함수 호출 시 스택 프레임이 생성되고 함수가 종료되면 자동으로 해제된다. LIFO 구조: 스택은 Last In, First Out(LIFO) 구조를 따른다. 가장 최근에 할당된 메모리가 가장 먼저 해제된다. 용도 지역 변수: 함수 내에서 선언된 변수는 스택에 저장된다. 함수 호출 정보: 함수 호출 시 전달된 인수, 복귀 주소, 그리고 함수 실행을 위한 로컬 변수가 스택에 저장된다. 예제 이 예제에서 는 함수 의 스택에 저장된다. 가 호출될 때 스택 프레임이 생성되고, 가 종료될 때 스택 프레임이 해제된다. 힙 메모리 특…

왜 전역변수가 아닌 static 키워드 변수를 사용하는가?

전역(global) 변수 라이프 타임이 프로그램이 종료될 때 까지이며, 다른 파일에서도 해당 변수에 접근이 가능하다. 정적(static) 변수 라이프 타임이 global 변수와 마찬가지로 프로그램이 종료될 때 까지이며, 반드시 static 키워드가 붙는다. 해당 변수가 선언된 scope에 따라서 접근 가능한 범위가 결정되고, 다른 파일에서 접근할 수 없다. 차이점 메모리 할당에서 global 변수는 초기화 되지 않으면 .bss 영역, 초기화 된다면 .data 영역에 할당 된다. 하지만 static 변수는 초기화 하지 않은 상태에서 메모리 자체가 잡히지 않는다. 전역 변수와 정적 변수의 초기화 시점 static 변수와 static 객체를 지역적으로 선언하고 초기화 할 때, 변수는 .data 영역에 올라간다. 객체의 경우 .bss영역에 올라간 후 dynamic initializer가 진행 되고, 생성자를 통한 초기화라면 해당 변수가 처음 수행되는 시점에 초기화가 이루어진다. 객체 초기…

C언어 포인터 개념정리

포인터란? 포인터(pointer)는 메모리 주소를 저장하는 변수이다. *변수명 으로 선언한다. 사용할때 *변수명을 사용하면 메모리 주소값이 아닌 메모리 주소가 가리키고 있는 변수의 값이 출력된다. 사용할때 포인터 변수명을 * 없이 사용하면 변수 값이 아닌 메모리 주소 그자체를 출력한다. 포인터의 기본 사용법 1. 포인터 선언과 초기화 위 예제에서 는 정수형 포인터 p를 선언한다는 의미이다. 는 변수 a의 주소를 p에 저장하는 것을 의미한다. 는 p가 가리키는 주소에 저장된 값을 의미한다. 2. 배열과 포인터 위 예제에서 는 배열 의 첫 번째 요소의 주소를 p에 저장하는 것을 의미한다. 는 포인터 연산을 통해 배열의 각 요소에 접근하는 방법을 보여준다. 3. 포인터를 이용한 함수 인수 전달 위 예제에서는 포인터를 사용하여 함수 인수로 변수의 주소를 전달한다. 변수의 주소를 전달하지만 *변수명으로 사용했기 때문에 주소를 전달하면서 안에있는 값을 읽는다. 이를 통해 함수 내에서…

2024 정보처리기사 실기 요약 - (8) SQL 핵심 요약

SELECT SELECT 절 / WHERE 절 / GROUP BY 절 / ORDER BY 절로 나눌 수 있다. SELECT 다음에는 속성 + FROM INSERT INSERT 다음에는 INTO DELETE DELETE 다음에는 FROM UPDATE UPDATE 다음에는 테이블명 + SET SELECT INSERT DELETE UPDATE

2024 정보처리기사 실기 요약 - (7) 코딩 핵심 요약

비트 연산자와 우선순위 반복문 함정 패턴 C언어 - 포인터 자바 - 생성자 자바 - 메서드 오버로딩/오버라이딩 비트 연산자와 우선순위 반복문 함정 패턴 C언어 - 포인터 자바 - 생성자 자바 - 메서드 오버로딩/오버라이딩

2024 정보처리기사 실기 요약 - (6) SW기초활용 ~ 패키징

운영체제 운영체제 = 커널 + 쉘 쉘 : 사용자와 운영체제 사이의 인터페이스, 사용자 명령을 해석해서 커널에 전달함 커널 : 소프트웨어와 하드웨어 사이의 인터페이스 종류 : 윈도즈, 유닉스, 리눅스, 맥, 안드로이드 윈도즈 특징 GUI 제공, 선점형 멀티태스킹 방식 제공 자동감지 기능 제공(Plug and Play) OLE(Object Linking&Emdedding, 앱사이 데이터공유) 유닉스 특징 대화식, 다중 작업 기능, 다중 사용자 기능 높은 이식성과 계층적 트리 구조 파일 시스템 제공 리눅스/유닉스 기본 명령어 chmod : 특정 파일 또는 디렉토리의 퍼미션 수정 명령어 기호 대상 : u, g, o, a 연산자 : 추가+,제거 -, 지정= 접근권한 : r, w, x 실행 메모리 관리 기법 반입 기법 : 메모리로 적재 시기 결정 배치 기법 : 메모리로 적재 위치 결정 할당 기법 : 메모리로 적재 방법 결정 교체 기법 : 메모리 교체 대상 결정 메모리 배치 …

2024 정보처리기사 실기 요약 - (5) SW개발 보안구축

SW 개발 보안의 3대 요소 기밀성(Confidentiality) : 인가되지 않은 접근에 따른 정보 노출을 차단하는 특성 무결성(Integrity) : 정당한 사용자와 방법을 따르지 않고서는 데이터가 변경 될 수 없음을 보장하는 특성 가용성(Availability) : 권한을 가진 사용자가 서비스를 원할 때 지속해서 사용할 수 있도록 보장하는 특성 DoS (Denial of Service, PC 1대가 직접 공격) 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 해 사용하지 못하게 하는 공격 DoS 공격 종류 SYN 플러딩(Flooding) : 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하는 공격 UDP 플러딩(Flooding) : 대량의 UDP패킷을 만들어 임의의 포트 번호로 전송하여 자원을 고갈시킴 스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시킴 죽음의 핑(Po…

2024 정보처리기사 실기 요약 - (4) 어플리케이션 테스트

소프트웨어 테스트 원리 완벽한 테스팅은 불가능 (테스팅은 결함이 존재함을 밝히는것) 개발 초기에 테스팅 시작 (요르돈의 법칙) 파레토 법칙(Pareto Principle) : 오류의 80%는 전체 모듈의 20% 안에서 발견 살충제 패러독스(Pesticide Paradox) : 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함 오류-부재의 궤변 : 요구사항을 충족시키지 못하다면, 결함이 없다고해도 품질이 높다고 볼 수 없음 테스트 시각에 따른 분류 검증(Verification) : 소프트웨어 개발 과정을 테스트, 개발자 혹은 시험자의 시각 확인(Validation) : 소프트웨어 결과를 테스트, 사용자 시각 테스트 V 모델 테스트 레벨 종류 단위(Unit) 테스트 : 구현이 진행될 때 모듈 및 컴포넌트 등을 테스트 (정적/동적) 통합(Integration) 테스트 : 모듈 간 인터페이스 관련 테스트 시스템(System) 테스트 : 단위 시스템 기능이 시스템에서 …

2024 정보처리기사 실기 요약 - (3) UI구현 ~ 통합구현

UI 설계 원칙 직관성(Intuitiveness) : 누구나 쉽게 이해, 쉽게 사용해야함 유효성(Efficiency) : 정확하게 사용자의 목표를 달성 하도록 함 학습성(Learnability) : 모두가 쉽게 배우고 사용할 수 있게 해야함 유연성(Flexibility) : 사용자의 요구사항을 최대한 수용하고, 실수를 방지해야함 UI 품질 요구사항 (하위항목은 이해위주로) 기능성(Functionality) : 정확하지 않은 결과가 발생할 확률과 시스템의 동작 관찰 적절성, 정밀성, 상호 운용성, 보안성, 호환성 신뢰성(Realiability): 작동되는 시간동안 의도하는 기능을 수행함을 보증 성숙성, 고장 허용성, 회복성 사용성(Usablity) : 어떠한 행위를 정확하고 쉽게 인지해서 쓰기 쉬운가 이해성, 학습성, 운용성 효율성(Efficiency) : 할당된 시간에 한정된 자원으로 얼마나 빨리/많이 처리 시간 효율성, 자원 효율성 유지보수성(Maintainability) : 요…

2024 정보처리기사 실기 요약 - (2) 데이터입출력

운영체제 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당 -Windows : 중/소규모 서버, 일반 PC, 세계최대 점유율 UNIX : 벨연구소에서 개발, 대용량 처리, 엔터프라이즈 급 서버 Linux : 중/대규모 서버 대상, 높은 보안성, 비용 가장 적음 Android : 리눅스 위에서 구동, 자바와 코틀린으로 작성 IOS : 높은 보안성, 고성능 운영체제 현행 시스템 분석 고려사항 신뢰도, 성능, 기술 지원, 주변 기기 , 구축 비용 미들웨어 응용 프로그램과 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 SW WAS 서버계층에서 애플리케이션이 동작할 수 있는 환경 제공, 트랜잭션 처리, 이기종 시스템 연동 DBMS 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구 보안 등의 기능을 지원하는 SW 스키마 외부, 개념, 내부 스키마로 나눌 수 있으며 데이터의 구조와 제약조건을 명세한 것 DB 설계 순서 요구사항 분석 > 개념적…

2024 정보처리기사 실기 요약 - (1) 요구사항

애자일 XP : 의사소통 개선과 즉각적 피드백 5가지 가치 : 용기, 단순성, 의사소통, 존중, 피드백 의사(소통)선생님 피(드백)존(중) 용기에 담(순성)아주세요 by 홍달쌤 12가지 기본 원리 짝 프로그래밍(Pair Programming) : 개발자 둘이서 같이하면 혼자와 같거나 적은 비용이 듬 공동 코드 소유(Collective Ownership) : 공동 소유로 변경시 지연감소 효과 지속적인 통합(Continuous Integration) : 매일 여러 번씩 통합, 빌드 해야함 계획 세우기(Planning Process) : 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려줘야함 작은 릴리즈(Small Release) : 작은 시스템 먼저 만들고 짧은 단위로 업데이트 메타포어(Metathor) : 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 간단한 디자인(Simple Design): 요구사항에 적합한 가장 단순한 시스템…

2024 정보처리기사 후기 및 요약정리

2024 1회차 정보처리기사 합격 필기 평균 85점 / 실기 81점 개정 후 난이도가 어려워진 대신 개발자가 알아야할 컴퓨터 사이언스 관련 지식을 체계적으로 학습할 수 있도록 잘 짜여진 시험이라 자격증 이외에도 비전공자로써 관련 지식을 쌓는데 큰 도움이 되었습니다. 난이도 체감 필기시험 필기 시험은 5과목으로 구성되어 범위가 넓고 외울 지식이 아주 많아 보이지만 실제 시험은 객관식 4지선다 형식인데다가 기존 기출문제를 풀어본 문제가 그대로 출제되는게 10~20% 정도를 차지합니다. 햇갈리게 함정을 파놓기 보다는 어렴풋이 본 기억만 나도 정답을 고르기 쉬워서 진짜 공부를 안한게 아니라면 1주일 정도만 공부해도 쉽게 합격할 수 있는 난이도 였습니다. 유튜브에 올라온 1시간 정도 분량의 필기 과목별 강의 영상을 1회독 하고 개정 이후 CBT 이전의 기출 문제만 다 풀어보고 오답인 부분을 체크하는 정도로 공부했을 때 평균 85~90점 정도의 점수를 받을 수 있었습니다. 실기시험 실기시험…