일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tinyml
- 포스코 교육
- 코테 문제
- 포스코 ai 교육
- sort
- 삼성코테
- dfs
- 초소형머신러닝
- 그리디
- 삼성코딩테스트
- 다이나믹프로그래밍
- DP문제
- 임베디드 딥러닝
- tflite
- 삼성역량테스트
- TensorFlow Lite
- dfs문제
- 컴퓨팅사고
- DP
- 코딩테스트
- bfs문제
- 코테
- 포스코 AI교육
- 딥러닝
- 영상처리
- MCU 딥러닝
- 자료구조
- 알고리즘
- BFS
- 삼성역테
- Today
- Total
목록공부 (176)
코딩뚠뚠
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/EKVf7/btrThNgojbI/fJhrM1F7PWGiFLMg2YinQ0/img.png)
C++ 은 복잡하고 방대한 언어이다. STL 이라는 표준 라이브러리를 제공하지만 여전히 부족하다. 이를 보완하기 위한 라이브러리가 boost libraries 이다. libraries라는 이름에서부터 느낄 수 있듯 boost 자체도 매우 방대하고 또 사용하기 어렵다. 주로 무엇을 보완하기 위해서 사용할까? shared_ptr boost의 존재보다 더 유명한 클래스였지만 C++11에 std::shared_ptr이 포함되어 사용할 수 있다. C++11 환경을 사용하지 못한다면 대안으로 사용가능하다. ex) shared_ptr을 사용하여 자원관리를 한다. shared_ptr이 파괴될때 fclose가 호출되기 때문에 파일 포인터 자원이 자동적으로 소거된다. 생성시에만 파괴루틴을 등록 후 신경쓰지 않아도 되어 버..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/RZ37a/btrRtVT7Dpi/5Erwk5kwHMU8HCdLuZPAlK/img.png)
세 기법은 운영체제가 지원하는 동기화 객체의 종류이다. OS에 쓰레드 동기화가 왜 필요할까? 컴퓨터에서의 자원은 제한되는 특성을 갖지만 시스템은 여러 프로세스를 동시에 실행하면서 각각 프로세스들은 자원들을 차지,점유하려는 시도를 한다. 이를 관리할 시스템이 없다면 프로세스간 충돌이 빈번할 것이다. 이 포스팅의 내용은 이런 문제를 해결하기 위해 운영체제에 도입된 객체를 활용하는 방법이다. 운영체제가 제공하는 동기화용 커널객체에는 뮤텍스,세마포어,이벤트 등이 있으며, 사용자모드 동기화 객체로 크리티컬 섹션이 존재한다. 뮤텍스(Mutex) 기반의 동기화 (메모리 접근 동기화) 세마포어(Semaphore) 기반의 동기화 (메모리 접근 동기화) 크리티컬 섹션(Critical section) 기반의 동기화 1. 뮤..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sadPj/btrN5FOqukV/UHJykPqbXeEbU8Us8QKfv0/img.png)
요즘 세상에 git 명령어를 직접 쓰는 개발자들이 얼마나 있을까 하지만 나처럼 필요한 사람이 있을 수 있기때문에 정리해보려 한다. 여러가지가 있지만 이번엔 가끔쓰는듯 꽤나 자주 쓰는 'git diff' 이다. git diff란 diff = difference 무언가의 차이를 보여준다 여기서는 commit branch 간 다른점 또는 Repository Directory 간 다른 점을 보여주는 명령어이다. 따라서 다양한 옵션들이 있는데 하나씩 간단히 알아보도록 하자. 1. git diff - Working Directory 와 Staging Area 사이의 차이를 확인하기 위함 실제로 파일에 두 부분을 수정 후 git diff 를 실행해보자 - git add를 하기전에 두 장소 (Staging Area 와..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bAAZYa/btrNB57KPUs/ogKZiw2cuD9r0OKkakXrJ1/img.png)
이 둘은 클래스나 구조체에서 변수를 사용할때 이용하는 연산자이다. 즉 무언가에 접근 이라는 의미로 사용된다. 요약 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..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b59OLM/btrMjQ467AC/RmPAeBYwQRX5N6ZocbXeP0/img.png)
과적합을 줄이는 방법 중 하나로 알고 이 글을 읽는 분들이 많을것이다. 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..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/baANGw/btrLu8kQUnp/cPryj3KFDBESQhKPh6fEQ1/img.png)
개요 commitlint 를 이해하기 전에 알아야될것들을 우선 개요에서 설명하려 한다. 커밋 메세지 컨벤션 : 프로젝트를 깃으로 관리할땐 커밋메세지를 남기곤 한다. 협업을 위해서 커밋메세지의 통일성이 필요하고, 커밋 메세지 컨벤션은 이에 대한 규칙이다. 규칙들 : - 제목과 본문을 빈 행으로 구분 - 제목을 50글자 이내로 제한 - 제목의 첫 글자는 대문자로 작성 - 제목의 끝에는 마침표를 넣지 않는다 - 제목은 명령문으로 작성하며 과거형X - 본문의 각 행은 72글자 내로 제한한다 - 어떻게 보다는 무엇과 왜 를 설명한다 커밋 메세지 구조 : $ (): -- 헤더 -- 빈줄 -- 본문 -- 빈줄 -- 바닥글 githook : 프로그래밍에서 hook이란 특정 함수 전후에 호출이 되는 코드를 말한다 git..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/PKvGg/btrLk3DWAuK/QSIrFZXXrjrrKjGXgX3acK/img.png)
colab에서 프로젝트를 진행하면 한번쯤은 겪어봤을 수 있는 이슈이다. 상황 : 아래와 같은 코드에서 - torch 는 내가 만든 패키지가 아니다 pip로 설치가능 - LFW는 내가 만든 data폴더의 lfw.py 에 있는 class이다. import torch import torch.nn as nn from data.lfw import LFW from data.ms1m import get_train_loader ... 하지만 같은 위치에 있다고 해도 LFW를 바로 불러오지는 못한다. PC와 다르게 이와 같은 저장소의 문제가 있다. 해결 : 매우 간단하다. - google drive 와 연동시켜준후 - 위치를 현재위치로 이동시켜주면 된다. 1. drive 마운트 import os from google.c..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/G6ldi/btrKpCOm88w/gVfCByJsvVQszZ0HyIGSJ0/img.png)
서비스 배포는 이미 완료했으며 개발간 자잘한 팁들을 포스팅한다. 카톡분석 서비스 주소 https://www.advancer-katalk.click 카톡분석 왕 테스트 www.advancer-katalk.click 개요 카톡으로 링크를 공유받았을때 그 링크는 카톡의 인앱 브라우저로 열리게 된다. 인앱브라우저의 경우 대부분 구동 간 제약이 존재한다 - 글자깨짐, 간격 등의 UI 이슈 - 여러 탭이 열리지 않는 이슈 등 이런 제약들을 우회하고자 페이지를 열었을 때 인앱브라우저이면 -> 크롬, 사파리로 브라우저를 자동전환하는 방법을 알아보고자 한다. 코드로 설명 - index.html 카카오톡이 아니더라도 인스타그램, 페이스북도 인앱 브라우저가 존재한다. 따라서 위 코드에서는 인스타인앱까지 탈출시켜봤다 끝