일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dfs
- 포스코 교육
- DP문제
- 임베디드 딥러닝
- TensorFlow Lite
- bfs문제
- dfs문제
- sort
- 영상처리
- 삼성코딩테스트
- 초소형머신러닝
- tflite
- 포스코 ai 교육
- 코테 문제
- DP
- MCU 딥러닝
- 그리디
- 컴퓨팅사고
- 다이나믹프로그래밍
- 삼성역테
- 자료구조
- 포스코 AI교육
- 알고리즘
- tinyml
- 딥러닝
- 코딩테스트
- 삼성코테
- 삼성역량테스트
- 코테
- BFS
- Today
- Total
목록분류 전체보기 (392)
코딩뚠뚠
C++ 은 복잡하고 방대한 언어이다. STL 이라는 표준 라이브러리를 제공하지만 여전히 부족하다. 이를 보완하기 위한 라이브러리가 boost libraries 이다. libraries라는 이름에서부터 느낄 수 있듯 boost 자체도 매우 방대하고 또 사용하기 어렵다. 주로 무엇을 보완하기 위해서 사용할까? shared_ptr boost의 존재보다 더 유명한 클래스였지만 C++11에 std::shared_ptr이 포함되어 사용할 수 있다. C++11 환경을 사용하지 못한다면 대안으로 사용가능하다. ex) shared_ptr을 사용하여 자원관리를 한다. shared_ptr이 파괴될때 fclose가 호출되기 때문에 파일 포인터 자원이 자동적으로 소거된다. 생성시에만 파괴루틴을 등록 후 신경쓰지 않아도 되어 버..
세 기법은 운영체제가 지원하는 동기화 객체의 종류이다. OS에 쓰레드 동기화가 왜 필요할까? 컴퓨터에서의 자원은 제한되는 특성을 갖지만 시스템은 여러 프로세스를 동시에 실행하면서 각각 프로세스들은 자원들을 차지,점유하려는 시도를 한다. 이를 관리할 시스템이 없다면 프로세스간 충돌이 빈번할 것이다. 이 포스팅의 내용은 이런 문제를 해결하기 위해 운영체제에 도입된 객체를 활용하는 방법이다. 운영체제가 제공하는 동기화용 커널객체에는 뮤텍스,세마포어,이벤트 등이 있으며, 사용자모드 동기화 객체로 크리티컬 섹션이 존재한다. 뮤텍스(Mutex) 기반의 동기화 (메모리 접근 동기화) 세마포어(Semaphore) 기반의 동기화 (메모리 접근 동기화) 크리티컬 섹션(Critical section) 기반의 동기화 1. 뮤..
message queue는 IPC 방법중 하나이다 - IPC : Inter process communication 으로 프로세스 간 통신을 말한다. 종류는 아래와 같다. file pipe message queue shared memory signal socket 이 중 이번에는 message queue를 공부해보려한다. message queue 말 그대로 queue를 사용해 메시지를 주고받는다. queue의 특징인 FIFO 방식 그대로이지만, 타입에 따라 특정 메시지를 먼저 수신할 수도 있다. 특징 : 비동기적으로 전송하여 효율적이다 queue가 어딘가에 저장되어있어 버퍼의 역할을 한다. 그 어딘가는 kernel level단이고, 프로세스가 종료되어도 남아있다. 구현 : 헤더 : #include #inc..
요즘 세상에 git 명령어를 직접 쓰는 개발자들이 얼마나 있을까 하지만 나처럼 필요한 사람이 있을 수 있기때문에 정리해보려 한다. 여러가지가 있지만 이번엔 가끔쓰는듯 꽤나 자주 쓰는 'git diff' 이다. git diff란 diff = difference 무언가의 차이를 보여준다 여기서는 commit branch 간 다른점 또는 Repository Directory 간 다른 점을 보여주는 명령어이다. 따라서 다양한 옵션들이 있는데 하나씩 간단히 알아보도록 하자. 1. git diff - Working Directory 와 Staging Area 사이의 차이를 확인하기 위함 실제로 파일에 두 부분을 수정 후 git diff 를 실행해보자 - git add를 하기전에 두 장소 (Staging Area 와..
이 둘은 클래스나 구조체에서 변수를 사용할때 이용하는 연산자이다. 즉 무언가에 접근 이라는 의미로 사용된다. 요약 1. .(도트) 는 클래스의 멤버를 직접적으로 접근한다. 2. ->(화살표) 는 포인터를 통해 멤버를 간접적으로 접근한다. 3. 즉 a->b 는 (*a).b 와 동일하다. 예시 - 아래 예시를 통해 이해해보자 #include using namespace std; class Mycls { public: int age = 10; int num = 1000; const char* name = "홍길동"; }; struct Mystruct { int age = 20; int num = 2000; const char* name = "김김김"; }; void main() { Mystruct mystru..
딥러닝을 공부하다보면 이 두 표현은 계속 볼 수 있는 개념이다. 우선 정규화라는 용어는 Normalization, Regularization 두 표현에 모두 사용하고 (Regularization은 '일반화' 라고 하는것이 이해에 편하다) 표준화는 Standardization에 사용한다. 그렇다면 정규화와 표준화가 아닌 Normalization / Regularization / Standardization 으로 나눠서 공부해보도록 하자 1. Normalization 데이터를 compact하게 만들기 위해 사용한다 -> 학습전 값의 범위를 축소한다 (0~255 >> 0~1) - Local Minima에 빠질 위험 감소 - scale이 큰 feature의 영향이 비대해지는 것을 방지 딥러닝에서 사용하는 Bat..
과적합을 줄이는 방법 중 하나로 알고 이 글을 읽는 분들이 많을것이다. Batch Normalization에 대해 알아보도록 하자. 먼저 Batch Normalization 은 아래 논문에서 나온 개념이다. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows do..
개요 commitlint 를 이해하기 전에 알아야될것들을 우선 개요에서 설명하려 한다. 커밋 메세지 컨벤션 : 프로젝트를 깃으로 관리할땐 커밋메세지를 남기곤 한다. 협업을 위해서 커밋메세지의 통일성이 필요하고, 커밋 메세지 컨벤션은 이에 대한 규칙이다. 규칙들 : - 제목과 본문을 빈 행으로 구분 - 제목을 50글자 이내로 제한 - 제목의 첫 글자는 대문자로 작성 - 제목의 끝에는 마침표를 넣지 않는다 - 제목은 명령문으로 작성하며 과거형X - 본문의 각 행은 72글자 내로 제한한다 - 어떻게 보다는 무엇과 왜 를 설명한다 커밋 메세지 구조 : $ (): -- 헤더 -- 빈줄 -- 본문 -- 빈줄 -- 바닥글 githook : 프로그래밍에서 hook이란 특정 함수 전후에 호출이 되는 코드를 말한다 git..