Study_Cat

꾸준히 공부하는 고양이가 될게요.

끊임없는 노력은 천재를 이긴다.

최신 글

more

AI 자동화, 어디까지 해봤니? 전통부터 에이전트까지, 현업에서 써먹는 실전 가이드

AI 자동화, 어디까지 해봤니? 전통부터 에이전트까지, 현업에서 써먹는 실전 가이드 🚀🤖'AI 자동화'라는 말, 요즘 IT 업계에서 안 들어본 분 거의 없으시죠? 하지만 실제 현장에서는 '어떤 자동화가 내 비즈니스에 맞을까?' 고민이 더 깊어집니다. 이 글에서는 전통적인 자동화부터 AI, 그리고 요즘 대세인 '에이전트형 자동화'까지, 실제 적용 경험과 함께 쉽게 풀어드릴게요!초보도 바로 써먹는 AI 자동화 분류법, 실전 사례와 도입 노하우까지 한 번에!목차자동화의 세 가지 유형, 한눈에 이해하기실전 적용 예시: 이메일 재무 자동화 & 고객 지원 에이전트n8n으로 만드는 똑똑한 워크플로우성공적인 AI 자동화 구현 꿀팁자동화 선택 가이드: 내게 맞는 방법은?작성자 경험 & 의견TL;DR 핵심 요약참고자료..

프로젝트 2025.08.28 3

[자료구조] Generic Dynamic Array 구현하기 ( 포인터 활용하기 )

이번에 구현해볼 것은, logN 만에 id를 찾아서 값을 update 하는 동적 Array입니다. linked_list 가 아니라 Array이기에 삽입, 삭제에 있어 O(N) 의 시간복잡도로 비효율적이라 사용하진 않지만 pointer 활용에 이해를 돕고자 구현해봤습니다.   또한 자료구조 수업에서 첫 번째 과제로 많이 나오는 내용이므로 코드를 활용하셔도 됩니다. 단, 댓글로 사용한다고만 남겨주시면 됩니다. valgrind 로 확인을 걸쳤으니 아마 문제는 없을겁니다. 아래 포스팅에서 비슷한 구조를 설명했기에 이번 포스팅에서는 디테일하게 설명하지는 않을 것 같습니다.  [자료구조] Ordered Linked List 구현하기만약 아래 소스코드를 사용한다면(과제나 블로그) 댓글로 목적을 적어주시고 사용해주세요..

C, C++ 2024.10.20 1

[solved.ac] 다이아V 달성과 앞으로의 목표

사실 다이아V 달성한지 쫌 오래됐는데요, 다시 열심히 글을 작성하고자 향후 목표나 다짐을 적어보고자 합니다.   여태까지 solved.ac 티어를 올리는 것을 목표로 했었는데.. 이제는 그냥 취미로 꾸준히 즐기고자 합니다. 대신에 웹 개발이나 데이터 분석같은 다양한 분야에 대해 공부하고 작은 프로젝트들을 진행하고자 합니다. 그리고 앞으로 대학교에서 재밌는 코딩이 나갈 예정이라 후배들을 위해 준비해야겠어요 :D   추가적으로 원래는 대회들을 나갈 생각이 없었는데.. 그냥 경험으로 생각하고 즐겨봐야겠어요!

알고리즘 2024.10.19 2

[자료구조] Ordered Linked List 구현하기

만약 아래 소스코드를 사용한다면(과제나 블로그) 댓글로 목적을 적어주시고 사용해주세요. 대학생분들이 사용하기 좋게 최대한 void ptr을 사용했으며 valgrind로 메모리 누수가 없음을 확인했습니다. 포인터에 대해 잘 모르신다면 아래 포스팅을 참고해주세요! [자료구조] 포인터와 동적 할당, 자료구조 입문하기! (with c언어)시작하기 앞서 자료구조 포스팅은 c++이 아닌 c언어로 진행됩니다! c언어는 c++과 달리 new, delete, struct 생성자/소멸자, template 없기에 불편할 수 있지만 자료구조를 보다 확실히 이해할 수 있습니다study-cat.tistory.com   1. include header#include #include // malloc#include // strd..

C, C++ 2024.10.18 0

[자료구조] 포인터와 동적 할당, 자료구조 입문하기! (with c언어)

시작하기 앞서 자료구조 포스팅은 c++이 아닌 c언어로 진행됩니다! c언어는 c++과 달리 new, delete, struct 생성자/소멸자, template 없기에 불편할 수 있지만 자료구조를 보다 확실히 이해할 수 있습니다.  1. 동적 할당int* data = (int*)malloc(sizeof(int));int* array = (int*)malloc(sizeof(int) * SIZE);  malloc은 원하는 만큼 heap 메모리를 할당하고 주소를 반환합니다. 이 때 '원하는 만큼' 의 주소 뿐이며 어떤 형태도 정혀지지 않았습니다( 자료형 ), 즉 void pointer의 상태로 return 되기에 형변환을 해줘야 합니다!  동적할당은 크게 2가지 이유로 사용된다고 생각합니다. 첫 번째는 '인스턴..

C, C++ 2024.10.18 0

[알고리즘 문제] 1146번 지그재그 서기

출처 : https://www.acmicpc.net/problem/1146 1. 접근1. 키(숫자)는 궁금하지 않다, 즉 (1 2 3 4) 나 (1 5 7 9) 는 같은 상태이다.2. 모든 키가 다르므로 결국 인원 수가 중요하다3. 가장 키가 큰 N을 어디에 배치할지 정하고 나눠진 구간을 subproblem 으로 계산하자!  처음부터 위와 같이 접근한 이유는 다음과 같습니다.1. 상태의 독립성을 나타내기 위한 정보는? -> "인원수"2. subproblem 으로 쪼개고 싶다! -> (3)  2. 고찰N을 배치함에 따라 left, right 영역으로 나눠진다고 할 때 다음과 같은 궁금증이 떠올랐습니다.dt[N] : 지그재그 서는 가지수라고 하고 ( left ) N ( right ) 꼴로 나타날 때,Q. l..

알고리즘 2024.07.14 3

[C/C++] 자료형의 프로모션(실수 방지!)

이 전의 글에서 다뤘었는데, 쫌 더 자세한, 추가적인 내용만 소개하고자 합니다. 1. 자료형의 프로모션?자료형이 다른 값들의 연산에서 어떤 자료형으로 연산되는가?  2. 자료형의 프로모션 규칙정수 + 실수 = 실수정수 + 정수 or 실수 + 실수 = 더 넓은 범위를 갖는 자료형int 형보다 작은 정수형 = int부호 없는 정수형 + 부호 있는 정수형 = 부호 없는 정수형위에서 + 로 표기한 것은 더하기 연산이 아닌 '자료형과 자료형의 만남' 을 표현하기 위해 사용했습니다.  int main(){ double num = 3/2; cout 1) cout 간단한 예시로 num은 double형으로 선언되었지만 선언 값은 정수와 정수의 연산이므로 1 이 출력됨을 알 수 있습니다. 두 번째의 if 또한 ..

C, C++ 2024.07.10 0

인기 글

Typescript를 배워야 하는 이유 (feat. React 적용)

웹 개발 프로젝트를 진행하면서 typesciprt를 사용하게 됐습니다. 그래서 Typesciprt는 무엇이며 구지 왜 공부해서 써야하는 지 알아보도록 하겠습니다.1. Typescript는 무엇이고 왜 써야할까?타입스크립트는 자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어이다. 마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. (wiki) 1) Javascript는 너무 자유롭다Javascript는 코딩하는 데 있어서 너무나도 제한이 없고 자유롭습니다. 처음 개발할 때는 편하게 느껴졌지만 이는 나중에 큰 프로젝트할 때 오히려 단점이 될 수 있습니다. "실행시간 오류" 를 제대로 catch해낼 수 없기 때문이죠! 그 중 가장 큰 문제의 원인은 변수의 type을 지정함으로 써 해결할 수 있습니..

웹 개발 2024.04.29 0

[웹 개발] React + Express(Nodejs) 연동하기

해당 포스팅은 Window 에서 진행하였습니다. 1. 프론트앤드 / 백앤드가 햇갈려요! 많이 착각하는 부분이 React와 Express 서버에 관한 내용입니다. 만약 React 프로젝트를 생성했다면 React 서버가 따로 존재할 것이며, Express를 이용하여 Server를 따로 만든다면 Express서버가 따로 존재하게 됩니다. 개발하는 단계에서는 React와 Express 서버를 연결해줘야 합니다. 배포하는 단계에서는 npm build를 통해 하나의 서버로 합쳐주면 됩니다.  ReactExpress서버Nodejs 서버 사용Express를 이용해 커스텀마이징작업화면에 나타날 UI 및 로직 제작API 제작 및 프로토콜 통신 제어 백앤드 공부 참고 블로그(다른분) : https://velog.io/@ys..

웹 개발 2024.06.26 0

[React-Native] 환경 설정을 해보자! (Vscode 절망편..)

vscode로 작업할라고 욕심내고 5시간을 날리면서 고생했는데.. 저는 예~전에 android_studio를 깔아서 연결이 잘 안되서 그런지 결국 안됬지만 다른 부분의 애러는 전부 해결했기에 혹시나 해서 올려봅니다. 근데 어차피 vscode로 작업한다고 해도 android_studio를 깔아서 이용해야 하기도 하고.. 호환 문제도 있고 오류도 너~무 많은데.. 그냥 android-studio로 하는건 어떨까요? 저는 몹시 후회 중 입니다. [React-Native] Android-Studio에서 작업하기 (희망편) VsCode로 작업하고 싶다! 라고 생각하시는 분은 아래 링크로 들어가서 하시면 되겠습니다. (vscode로 셋팅하면 아~주 많고 많은 에러가 뜨는데... 그냥 앱 제작은 Android Stu..

앱 개발 2024.04.04 1

[알고리즘 문제] 25402번 트리와 쿼리

출처 : https://www.acmicpc.net/problem/25402   1. 풀이해당 문제는 주어진 S에 대하여 집합 혹은 그룹을 만들고 각 그룹의 인원수를 Combination을 이용하여 푸는 것 임을 바로 알 수 있다. 이 문제에서 중요한 점은 주어진 집합 S에 대해 그룹의 인원수를 파악하는 것이다.  각 질문마다 S집합에 속한 노드를 chk배열에 확인해두고 단순히 dfs를 돌면 시간초과가 날 것이다. 그 까닭은 dfs는 O(N)이 아니라 O(V+E) 이기 때문이다. 이러한 dfs는 해당 노드에 연결된 모든 간선을 탐색하므로 해당 문제에서 최악의 경우 각 질문마다 O(N) 이 발생하며 결과적로 N*O(N) = O(N^2) 이 되며 시간초과가 난다. 위 예시에서 빨간색은 S집합에 속한 노드를 ..

알고리즘 2024.05.29 0

[전산수학I] Orthogonal의 기본적인 개념들

해당 개념을 소개하기 앞써 Orthogonal의 중요성은 언급하고자 합니다. Orthogonal은 직교를 뜻하며 일반적인 Basis 를 나중에 소개할 Gram-Schmidt 혹은 QR factorization을 활용해 직교 좌표계를 만든 후, 정사영 개념을 응용하여 "근사" 에 사용할 수 있습니다.  해당 개념이 너무 중요한 까닭은 일반적으로 방정식의 해를 구하지 못하는 경우가 대다수인데... 이럴 때 근사를 사용해서 가장 가까운 해와 그 오차에 대해서 구할 수 있기 때문입니다.  Inner Product(내적)  내적은 위의 식처럼 표현할 수 있으며 이를 기하적인 의미로 해석하기 위해 아래처럼 표기할 수 있습니다. 즉 v벡터의 크기와 t를 v에 정사영 했을 때의 길이의 곱이란 결과와 위의 결과들이 모두..

전산수학I 2024.05.27 0

[미적분학] 역쌍곡선 함수의 미분 - feat. 역삼각함수

1. arcsinh 2. arccosh 3. arctanh 4. arccsch 5. arcsech 6. arccoth 7. 정리 및 팁 삼각함수와 하이퍼볼함수의 역함수 미분을 외우기 쉬운 팁이 있다. 1) 도함수 사용 역함수의 도함수를 구하기 위해 f(y) = x꼴로 바꾼 후 미분하여 해당 식을 활용한다. 이를 통해 원래 함수의 도함수를 사용함을 알 수 있다. 2) 함수의 관계 이용 전개 과정에서 y를 x에 대한 식으로 전환하는 과정에서 원래 함수의 도함수와 관계있는 식을 이용해 y에 대한 함수를 x로 바꿀 수 있다. 이를 통해 대략적인 함수식을 떠올릴 수 있다. 3) 적용 sin과 cos의 경우 $sin^2x + cos^2x = 1$ 이라는 관계식을 통해 $1-x^2$을 연상할 수 있다. tan는 $t..

미적분학I 2024.03.31 0

[pytorch] CNN: 고양이, 개 분류 실습

해당 포스팅은 간단하게 코드를 어떻게 짰는지를 위주로 작성했습니다.사실... 정확도가 낮고.. 나중에 발전시킨걸 분석할라고 했는데.. 생각보다 잘 나와서 바로 올리게 되었습니다. 정보/인공지능 이론은 나중에 추가적으로 포스팅하겠습니다. 1. Datasetkaggle에 올라온 데이터를 이용했습니다.  Dogs vs. Cats | Kaggle www.kaggle.com class MyDataset(Dataset): def __init__(self, folder): super().__init__() self.url = f'./dataset/{folder}' self.transform = transforms.Compose([ transforms.Re..