Programming/Computer Science
-
Software 1.0 vs Software 2.0Programming/Computer Science 2024. 1. 22. 18:42
Software 1.0과 Software 2.0 소프트웨어 개발 및 딥러닝 분야에서 사용되는 용어 전통적인 소프트웨어 개발 방법과 딥러닝을 비교하여 설명하는 데 사용 Software 1.0 전통적인 소프트웨어 개발 방법 Top-down 방식 장점 : 명시적이고 직관적임 단점 : 복잡하고 다양한 규칙 처리하기에 어려움 SW 1.0 개발과정 문제정의 큰 문제를 작은 문제의 집합으로 분해 개별 문제 별로 알고리즘 설계 솔루션들을 합쳐 하나의 시스템으로 이미지 인식 기술도 처음에는 SW 1.0식으로 개발되었음. 전신이 보이는 경우, 팔이 보이는 경우, 얼굴이 보는 경우, ..... 이런식으로 케이스별로 분해. 예) DPM 그러나 한계가 있었고 이에 대한 해결책으로 Software 2.0이 등장함. SW 2.0에..
-
[라이프 사이클] C++, Python, OpenCV의 라이프 사이클 정리 및 장단점 비교Programming/Computer Science 2023. 6. 15. 20:16
C++의 라이프 사이클 자원 할당 동적으로 할당되는 메모리나 파일 핸들링. new연산자를 사용해서 동적으로 메모리를 할당하거나 파일 i/o 클래스를 사용한다. 자원 사용 할당된 자원으로 작업을 수행한다. 동적으로 할당된 메모리에 데이터를 저장하거나 파일 데이터를 읽고 쓴다. 자원 해제 할당된 자원을 더 이상 사용하지 않으면 명시적으로 자원을 해제하여 반환한다. 메모리 누수를 방지하기 위함이다. delete 연산자나 close() 함수 등의 소멸자를 사용하여 자원을 해제한다. 프로그램 종료 프로그램이 종료될 때 할당된 자원은 운영체제에 반환된다. C++의 경우 main()함수가 반환되면 프로그램이 종료되고 이 때 자원이 자동으로 해제 된다. python의 라이프 사이클 파이썬 프로그램이 시작되면 코드의 위..
-
[TIL] 230524 - RESTFul APIProgramming/Computer Science 2023. 5. 25. 23:41
🤍API Application Programming Interface 🤍RESTful REST의 기본 원칙을 지킨~ REST의 6가지 원칙 server-client uniform interface stateless caching ….. ….. RESTFul API 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스 [네트워크] REST API란? REST, RESTful이란? :: 히진쓰의 서버사이드 기술 블로그 (tistory.com) [네트워크] REST API란? REST, RESTful이란? REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST부터 알아보도록 하겠습니다. REST란? REST(Representati..
-
[TIL] 230522 - Hash 해시에 대해Programming/Computer Science 2023. 5. 22. 19:16
해시 🙋♂️관련 문제 in 프로그래머스 완주하지 못한 선수🔥 전화번호 목록🔥🔥 베스트 앨범🔥🔥🔥 처음에 인덱스로 풀다가 시간 복잡도에서 시간초과했다. 해시로 풀어야 하는것을 알게 되었다. dict 형태로 저장해놓으면 값을 서치할때 빠르게 찾고 비교할 수 있다. 특히 두가지 list 값들을 비교할 때는 O(n^2)이 걸리기 때문에 → a list i개, b list j개 → i*j번 연산 Q. dictionary가 왜 인덱스보다 빠른지? 검색 속도: 딕셔너리는 해시 테이블을 사용하여 키를 해시 함수로 변환하고 해당 키의 값을 검색합니다. 이 과정은 평균적으로 O(1)의 시간 복잡도를 가지며, 매우 빠른 검색 속도를 제공합니다. 반면에 인덱스를 사용하는 경우, 리스트나 배열을 순차적으로 탐색해야 하므로 O..
-
[TIL] 230519 - 운영체제 / 프로세스 스레드 / CPU 스케줄링Programming/Computer Science 2023. 5. 19. 00:20
운영체제 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스. 컴퓨터 자원, 하드웨어, 소프트웨어 등을 관리함 프로세스 관리, 스케줄링 → CPU를 관리함. 저장장치 관리 - 메모리, 가상 메모리 → 하드디스크, 파일로 저장 네트워킹 - TCP/IP 사용자 관리 - 계정, 접근권한 프로세스와 스레드 code data : 전역변수, 정적변수, 배열,,, heap : 동적 할당 stack : 지역변수, 매개변수, 리턴 값 프로세스 독립된 메모리 영역 할당받음 → 그래서 다른 프로세스의 자원에 접근 못함 ex 유튜브와 카카오톡 서로 데이터 알지 못함 스레드 프로세스 안에서 실행되는 여러 흐름 단위 프로세스 내에서 할당받은 자원을 이용해 동작하는 실행 단위 code, data, heap 메모리 영역을 공유함..
-
[TIL] 230516 코딩테스트, 시간복잡도Programming/Computer Science 2023. 5. 17. 00:28
코딩 테스트 🔽참고 강의 https://blog.encrypted.gg/921 [실전 알고리즘] 0x00강 - 오리엔테이션 안녕하세요, 바킹독입니다. 리뉴얼을 완료해서 다시 강의를 올립니다. 혹시 코딩테스트를 대비하고자 하는 목적으로 검색하다가 이 강좌를 보게 된거라면 지금 이 강좌가 정말 큰 도움이 된다 blog.encrypted.gg ✔중요한 세가지 능력 배경지식 문제해결능력 구현력 나의 경우 문제 해결 능력에는 자신있으나 컴공 출신이 아니어서 배경지식이 부족하다. 사실 챗지피티나 구글링을 통해 이 부분을 채울 수 있다고 생각하는데, 코딩 테스트나 기술면접을 통과하려면 어쨌거나 배경지식도 잘 갖추어야한다. 취업을 위해서 뿐만 아니라 배경지식을 잘 습득해야 그것을 머릿속에서 잘 끼워맞춰서 응용할 수 있..
-
개발자의 능력 척도 - 드라이퍼스 모델Programming/Computer Science 2022. 5. 12. 12:55
Dreyfus Model – The Last Mind Dreyfus Model 모든 관리자의 이상 관리자의 입장에서 가장 예뻐 보이는 동료는 누구일까? 여러 가지 답이 있을 수 있겠지만, 그 중 하나는 아마도, ‘주어진 업무를 수행할 때, 업무의 목표가 무엇인지 정확히 blog.lastmind.io 능력있는 개발자를 어떻게 알아볼 수 있나? – Place Of 42Seoul Story (innovationacademy.kr) 능력있는 개발자를 어떻게 알아볼 수 있나? A.소개글 아래 글은 2017년 “황준식”님이라는 분이 “생활코딩”에 공유했던 글인데,꽤 많이 읽혔던 글입니다. 이 분은 2005년 벤처창업을 하셨는데,2017년 거의 박사과정이 막바지에 있을 때였 42place.innovationacade..
-
Redis 입문용 정리Programming/Computer Science 2022. 4. 19. 17:48
서버쪽은 정말 문외한인데... 개발을 하다보니 데이터베이스쪽도 봐야하는 날이 오고 말았습니다. Redis를 써보자고 하셔서 한창 공부중인 상황입니다... 윈도우에서 사용하는 redis로는 cpp_redis, Hiredis 등 있는데, 저희는 Hiredis를 쓰기로 결정했어요(비교적 업데이트가 잘 되고있어서) 윈도우즈에서 빌드방법은 잘 나와있는 블로그들이 있어서 넘어가고, 일단 Redis에 대해 차근차근 정리해보겠습니다. Redis : Remote Dictionary Server 빠른 속도가 장점이라고 함. -> 유튜브 NHN이나 우아한테크의 영상으로 공부했습니다. 예제코드 Hiredis Complie and Connection (redisgate.kr) Hiredis Complie and Connecti..
-
Hash Table , Hash Function 공부, 정리Programming/Computer Science 2022. 4. 18. 16:42
Hash Table hash...hash tag...? hash table개념은 생소하지만, hash tag는 익숙하다. hash tag는 지정한 키워드를 걸어두면 "빠르게" 해당 키워드 내용이 검색에 걸리게 하는 알고리즘이다. Hash Table은 Hash Function을 사용한다. 예시를 들어보자. 메뉴판이라는 데이터가 있고 내가 찾고싶은 것은 피자의 가격이다. { "치킨":20000, "파스타":15000, "햄버거세트":10000, "피자":30000, ,,, } 대충 이런 데이터셋이 있다고 한다면 위에서부터 하나하나 피자 key값을 찾게된다. 그런데 이 때 문제는 메뉴판 메뉴가 많을수록 피자를 찾는 시간이 오래 걸린다는 것이다. 이것을 해결하기 위한 개념이 Hash function이다. arr..