분류 전체보기 127

[computer science] Heap Sort와 Priority Queue

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.이전 시간에 이어 이번에는Heap Sort와 Prioirity Queue 내용을정리해보려고한다  Heap Sort Heap Sort는 유명한 정렬 알고리즘 중 하나이다정렬이 되지 않은 array를 heap을 바탕으로정렬을 시키는 방식이다 이 과정을 수행하기 위해서는우선 array에 build_max_heap을적용시켜줘야한다 하지만 위 ppt만 봐도 알겠지만build_max_heap만 했다고그 array가 정렬이 되는 것은 아니다 우선 build_max_heap을 시켜준다음subarray에 대해서 계속max_heapify를 해줘야한다이게 무슨 말인지 자세히 살펴보자  정렬이 안된 arr..

[computer science] Binary Tree, Max Heap

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.중간고사가 지나고 이전까지는 기본적인c++에 대해서 공부했다면이제부터는 알고리즘에 대해서 공부를한다고한다 그 첫 시간인 Heaps and Priority Queues 나에게도 처음들어보는 개념들이조금 있었어서 다른 수업들보다는더 공부를 해야겠다는 생각이 들었다 우선 Heap과 Prioirty Queue를배우기전에 기본적으로 알아야하는Binary Tree의 개념에 대해 알아보자 Binary Tree 우선 Binary Tree에 대해 알아보자한국어로는 이진트리이다 이진트리는 위 ppt 그림과 같이최대 2개의 자식노드를 가질 수 있는 트리구조이다  한 node가 갖고있는 자식의 개수를deg..

[Computer Science/c++] Type Casting과 Exception Handling

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.이번 시간에 정리해볼 내용은c++에서의 type casting과 Exception Handling  Type Casting  type castring이란어떤 variable을 어떤 타입에서다른 타입으로 바꿔주는 것을 말한다 type casting의 종류는c-style castingstatic castingdynamic castingconst castreinterpret cast가 있다 먼저 c-style casting이다 C언어에서 casting을 하는 타입이다타입 캐스팅을 하고하자하는 변수 앞에괄호를 열고 바꾸고싶은 타입을 적어주면 된다 예를 들어 float을 int로 바꿔주고싶으면..

[Computer Science/C++] Multiple Inheritance, Multi-Level Inheritance, Abstract Class, Friend Class

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.Multiple InheritanceMultiple Inheritance란 하나의 derived class가여러 개의 base class를 상속받게 해주는 것이다  저번 시간과 동일하게 포켓몬으로(..)예시를 한 번 보자 전기속성을 띄는 포켓몬은 electricLevel이라는 attribute를불속성을 띄는 포켓몬은 flameLevel이라는 attribute를갖고 있다 따라서 ElectricPokemon이라는 클래스와FirePokemon이라는 클래스를 또 만들려고 한다 그럼 Pikachu는 포켓몬이자 전기속성을 띄는 포켓몬이므로BasePokemon class와 ElectricPokem..

[computer science] c++의 class와 inheritance(상속), class substitution, virtual function, dynamic binding

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.이번 시간에 정리해 볼 내용은c++에서의 class와 상속그리고 virtual function에 관한 내용이다  교수님께서 포켓몬을 이용한 ..예제를 들고오셨다 ㅋㅋ c++로 이런 귀여운 애들에 대한class를 만들어보자 각각의 attribute들과method들은 위와 같다  class design은 다음과 같다우선 Pokemon이라는 base class를 만든다base class에는name, hp, typed이라는 attributes가 있고attack, decreaseHp, getHp, getName이라는methods가 있다 그리고 Pokemon을 상속받은 class로Pikachu와..

[computer science] c++의 Copy/Move semantics, Static

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.파이썬으로 프로그래밍을 할 때아직 프로그래밍을 잘 모르던 시절 int_list = [1, 2, 3]new_int_list = int_listnew_int_list.append(4) 위와같이 프로그래밍을 해줬는데int_list에도 4가 append되어있어당황했던 기억이 있을 것이다 그래서 막 구글링을 하다보면new_int_list = copy.deepCopy(int_list)와 같이 해야하는데그 이유는 deep copy를 해야int_list의 요소들만 담은완전히 새로운 new_int_list가생성된다는걸 들어본적이 있을 것이다 프로그래밍을 공부하다보면call by valuecall by..

[computer science] c++의 operator overloading/연산자 구현하기 2편

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.operator overloading 2편! 시시시시작..  cout에서 자주 쓰이는 오른쪽의 object에 인자로 받은 값을append 시키는 기능을 한다 또한 tradition하게는Object 자기 자신을 반환하므로return값으로는 reference값input으로는 오른쪽의 object를 받아준다 그냥 현재 벡터에 내부적으로addElement를 해주는거고반환값으로는 append한자기 자신 reference를 반환해준다 그다음 또 하나 주목해야할게input에 const가 있는걸 확인할 수 있는데왜 const가 있을까? literal값을 받기 위해서다 input으로 변수가 아닌4, ..

[computer science] c++의 operator overloading/연산자 구현하기 1편

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다. 저번 시간에는 c++의 class 내부에서method를 구현하는 법을 배웠다면이번시간에는 class의 바깥에서method 구현하는 법을 정리해보려고한다 그리고 그와 함께operator overloading까지같이 정리해보려구한다 그럼 시작..!  Out-of-Class Definition  위 ppt의 코드를 잘 읽어보자SimpleVector라는 class 내부에 void addElement(T element);int getSize() const;와 같이 함수들이 정의되어있는데자세한 구현은 없이prototype만 정의되어 있는 것을 확인할 수 있다 실제 메소드들이 어떻게 작동하는지는..

[Docker/mongoDB] docker compose로 mongoDB, mongo-express build하기 (Datagrip으로 MQL 실행)

이번에 야심차게개인 프로젝트를 진행해보려고한다 이미 대학원 연구실 과제에개인 연구에개발 외주 작업에대학원 수업으로초특급 바쁘긴하지만.. 그래도 약 1년전부터해보고싶다고 마음 먹었던건데시작이 반이라고개발환경이라도 셋팅해놓으면언젠간 차근차근 하지 않을까 생각했다 ㅎㅎ 내가 기획하고 있는 프로젝트는그렇게 가볍지도 않지만또 엄청 무겁게 할 생각도 없는개인 프로젝트이기에어떻게 할까 고민했다가 backend: Spring Boot + jpaDB: MongoDBfrontend: React + tailwind css로 해주기로 했다 처음에는 backend를node.js로 해주려고했다가사실 가장 익숙한게 spring framework이기도 했고spring에서 jap를 써보고 싶었기 때문이다 DB를 MongoDB를 선택한..

기술/DB 2024.10.13

[react] Google Cloud text-to-speech API 이용해서 frontend에서 영어단어별 발음 재생 구현하기

외주로 작업하고있는 개발 프로젝트에서영어 문단이 있으면그 문단의 단어별로 녹음파일을재생해야하는 기능이 있었다 처음에는 모든 녹음파일들을Google Cloud text-to-speech기능을 사용해서front쪽 public 폴더에넣어놓고 재생해달라고 요청을 받았지만 https://console.cloud.google.com/vertex-ai/studio/speech/text-to-speech?project=gen-lang-client-0237974714&inv=1&invt=AbeTjg Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com그렇게하면단어별로 하나하나 녹음파일을다운받아야한다는 수작업이 발생하고..나중에 영어 문단이 바뀌었을 때새로 작업하기가 꽤..

기술/웹 개발 2024.10.10