안녕하세요?

조금은 일찍 돌아왔습니다.

오늘은 어제 밤에 AI구독루팡을 하던 작업에 대한 지표를 좀 보고 마무리 할 예정입니다.

원래는 다른 팀에 라벨링을 맡기던 작업인데, 이거 속도를 보니까 내가 원하는 수량의 DB를 채울라면 2년은 족히 걸릴거같다.

1Set에 2일이고 가지고있는 DB는 300개는 족히 넘는데,,,,

그래서 겸사겸사 Zero-Shot 모델을 사용해서 한번 추출해볼까하면서 어제 CL비서를 건드렸다.

어제까지 Zero-Shot의 가능성을 확인했고, 살짝의 학습이 들어가면 꽤 괜찮은 DB가 만들어지지 않을까? 하며 집을 갔다.

나의 생각대로 DB는 59/424로 완전히 불균형 하지만, 그래도 가망성을 보고 1차 검증DB의 상하단10%를 잘라서 검증후 2차 학습DB로 추가했다.

결과는 ... 성공적...!

미틴... 진짜 미틴 이거 가능성을 보긴했지만 이렇게 잘 뽑힐 줄은 몰랐는데, 이제 DB 불균형을 맞춰서 DB를 수정하면 될거같다.

Zero-Shot에 대해 조금 공부가 필요한 부분이지만, "추가 학습없이 바로 사용한다."로 알고있었는데, 도메인 갭이 있으면 학습이 필요한 부분인것을 체감했다.

이렇게 매트릭스가 잘 뽑힐줄은 진짜 꿈에도 몰랐는데,,,, 일단 감격은 집어치우고 검증요청할 DB 분류 먼저 진행해야겠다.


오늘은 반차다 정확히 12시 15분 퇴근이다.

반차를 쓴 이유는 장모님의 생신파티가 있는 날 + 대출 심사 신청하는 날 이다.

여러모로 두근두근한 날이다.

대출 심사는 앞으로 와이프와의 행복한 앞날을 위해서 너무 떨린다. 지구에서 심장박동하는 느낌

장모님 생신파티는 이제는 2번 뵈었고 가족이라 생각하지만, 그래도그래도 아직은 객원의 느낌을 떨쳐내기 어렵다.

나중에는 더욱더 편한 사이가 되어서 소소한 이야기 나누고 싶다.

아으 떨려 지구인들아!!! 나에게 힘을 줘!!!!!

'진짜 일기' 카테고리의 다른 글

2026.11.12  (0) 2026.11.12
2023.09.19  (0) 2023.09.19
2023.09.11  (0) 2023.09.11
2023.09.07  (0) 2023.09.07
2023.09.06  (0) 2023.09.06

안녕하세요?

너무 오랜만이라 좀 어색하긴하네요.

이거만 쓰고 안쓸수도있어요.

일단 다시 시작해볼까합니다.


현재 시간 17시 13분

오늘은 회사내에 인증 관련 여러가지 문서를 작성했다.

이번 년도는 본업을 거의 배제당한 정도로 문서 작업만 한 것 같다.

오늘로서 손안에 있던 문서작업 3가지가 모두 종료되었다.

이후 피드백이 있긴하겠지만, 소소한걸로....샤갈

지금은 그냥 평소에 해보고싶던 Zero-Shot 학습을 한 번 해보고싶어서 나의 CL비서에게 리서칭을 부탁했다.

열심히 토큰을 갈아서 쓰고있는데, 중요한건 이건 회사의 일이니까 회사의 계정으로 돈을 쓰는거다.

이것이야말로 월급루팡보다 더 기분좋은 AI구독루팡.나중에는 부디 PT비서도 쓰고싶다.

오늘 집에가서는 빨래를 하고 책 배송온것을 읽어볼 예정이다.

ㅇㅏ 어제 책을 구매했는데, 요즘 나를 되돌아 보기위해 ChatGPT와 함께 고심해서 고른 책이다.

제목은 생각중독이다. 이거 읽고 독후감도 여기에 쓸까 생각중이다.

지금  회사에서 일기를 쓰고있데 기분이 너무 좋다.AI구독루팡, 월급루팡 ... 근데 아무리 루팡루팡해도 대도둑이 될 순 없고 그냥 편의점 껌도둑정도일것 같다.

언젠가 대도둑이 되는 날을 기원하며!(이거 맞나?)

안녕!

'진짜 일기' 카테고리의 다른 글

2026.11.13  (0) 2026.11.13
2023.09.19  (0) 2023.09.19
2023.09.11  (0) 2023.09.11
2023.09.07  (0) 2023.09.07
2023.09.06  (0) 2023.09.06

출근한지 2일차

오늘은 회사의 하드웨어 작동방식과 기초 이론에 대해 공부중이다.

첫 날인 어제와는 다르게 30분 일찍 출근했다.
역시 출근길은 출근길인갑다.
어제는 8시에 출발해서 9시 50분에 도착했는데, 오늘은 7시반에 출발해서 9시 30분에 도착했다.
더 일찍 출발하면 도착시간이 얼마나 줄어들지 궁금하다.
빨간버스의 배차 주기가 더 짧았다면 더 좋았을 것 같다.

지하철로만 오게되면 3번을 갈아타야하는데 빨간버스는 2번을 갈아탄다.
시간 차이가 거의 없지만 버스라는 단점이 존재하기 때문에 어떻게 와야할지 고민이다.

오늘도 화이팅!

'진짜 일기' 카테고리의 다른 글

2026.11.13  (0) 2026.11.13
2026.11.12  (0) 2026.11.12
2023.09.11  (0) 2023.09.11
2023.09.07  (0) 2023.09.07
2023.09.06  (0) 2023.09.06

오늘은 조금 일찍 일어났다.

뭔가 모르게 일찍 깼다.
뭔가 이상한 꿈을 꿨던것 같다.
뭔가 뒹굴거리기도 싫었다.
뭔가 그냥 일어나서 밥을 먹었다.
뭔가 카페를 빨리 와야할 것 같았다.

그냥 오늘은 알고리즘 문제만 주구장창 풀어야겠다.

'진짜 일기' 카테고리의 다른 글

2026.11.12  (0) 2026.11.12
2023.09.19  (0) 2023.09.19
2023.09.07  (0) 2023.09.07
2023.09.06  (0) 2023.09.06
2023.09.02  (2) 2023.09.02

젠장 어제 갑자기 면접이 금요일로 잡혀서 계속 딥러닝 관련 면접질문 내용만 뒤적거리고있다.
그래도 코테가 토요일에 있기때문에 한 두문제씩은 풀고 준비를 하고있다...
내일 면접은 어찌될지 모르겠다만 첫 면접이니만큼 질문들을 기억하고 적어놔야겠다.

문제는 이력서 내용을 리뷰했어야 하는데 아직 못했다... 뿌에ㅔㅔ
지금 시간부터 이력서 리뷰하고 기억에 남겨야겠다.

내일 화이팅! 

'진짜 일기' 카테고리의 다른 글

2023.09.19  (0) 2023.09.19
2023.09.11  (0) 2023.09.11
2023.09.06  (0) 2023.09.06
2023.09.02  (2) 2023.09.02
2023.08.29  (0) 2023.08.29

요즘 일상의 루틴을 만들고있다.
이유는 자연스럽게 공부하고, 집중하기 위해서다.

누군가는 강압적으로 제한이 있는 성장 방식이 필요하다는 생각을 갖고 있었고, 그렇게 실천하고 있었다.
하지만, 다른 여러사람들의 말을 듣다보니 절벽 끝으로 몰아붙여서 성장하는 것은 단기적인 성장력이 어마무시하지만,
이 방법이 익숙해서 계속하다 보면 절벽 끝에 있는 상황이 익숙해져서 편해지는 느낌이 들게되면, 점점 성장이 더뎌진다는 생각이 들었다.

나는 매번 마음속으로 "나는 할땐 잘해! 주어진 일은 나한테 성장을 불러일으켜!"라고 생각하면서 누군가(어떤 상황이) 나를 절벽 끝으로 몰아붙여 주기를 원했다. 그리고 절벽 끝이 익숙해졌다.

점점 성장곡선이 늘어지는 것을 체감하면서 꾸준한 성장을 도모하고자 일상 루틴을 만들어 실행에 옮기는 중이다.

내가 일상 루틴을 만드는 방식은 생각보다 간단했다.
"지금 식사는 무엇을 먹을까?", "식사를 한 뒤에 뭘하지?", "컴퓨터에 앉아서 뭘하고있는거지?", "내가 뭘 하고 싶은거지?"
의문문을 끊임없이 던진지 4일정도 되었다.

그렇게 정해진 루틴으로는 아래와 같다.

  • 아침으로 간장계란밥을 먹는다.
  • 씻고 카페에 간다.
  • 글을 쓴다.
  • TODO LIST를 정비한다.
  • 알고리즘 문제를 푼다.
  • 책을 본다.
  • 집에 간다.
  • 면접 질문 리스트를 공부한다.

아직 이후에 정할것들이 많다.

여기서 시간별로 정하는게 낫겠다는 생각이 들수도 있는데, 나는 그렇게 생각한다.
"시간은 내가 컨트롤할 수 있는게 아니다. 그러니까 내게 주어진 시간은 많으니 행위에 집중한 루틴은 시간표가 아니라 일상이 될 수 있다."

일상은 마냥 특별하지도 일반적이지도 않기 때문에 쉽게 루즈해지지 않을 수 있다고 생각한다.

이 글을 보는 사람은 시간표 혹은 루틴이 있는가? 묻고싶다.

'진짜 일기' 카테고리의 다른 글

2023.09.11  (0) 2023.09.11
2023.09.07  (0) 2023.09.07
2023.09.02  (2) 2023.09.02
2023.08.29  (0) 2023.08.29
7/23 일기  (0) 2022.07.23

9월이 시작되었다.
작성한 TODO LIST를 따라 뭔가를 막 하고있다.

어제 날이 정말 좋아서 카페에 가서 코딩 테스트 문제를 풀었다.
그리고 SKCT를 보고 코딩 테스트 준비를 하느라 바빴다.

SKCT는 막 수학, 언어 이런거 나올줄 알았는데 개발직군이라 인성검사만 했다.
뭐... MBTI검사하는 느낌이었고 말을 요리조리 바꿔서 질문을 하는데 ㅏ 다르고 ㅓ 다르게 대답할 수밖에 없는 말이 많았다.

푸쉬업도 못할때까지 했는데 24개.... 에혀 이렇게 몸이 쓰레기가 됬구나 라는 생각이 들었다.
꾸준히 푸쉬업 해야지.... 이번달까지 60개할 수 있었으면 좋겠다.
왜냐면 의경시험에서 1분에 68개 했던 기억이있기 때문이다.
한달로는 안되겠지만 그래도 60개정도는 가능할거같다.

오늘도 날이 너무 좋은데 기존에 있던 약속이 파토났다.
친구가 선배네 집 놀러가자 그랬는데 집안일이 생겼다고 한다.
나가서 친한 사람들 만나는 것도 좋지만, 집에있는것도... 헤ㅔ 돈도 없고,,,,헤ㅔ 코테 준비도 해야하고,,, 헤ㅔ
뭐 어쨌든! 주말 내내 집에서 아주 신나게 코테 문제만 풀거같다 ㅋㅋㅋㅋㅋ 와. 신.난.다.

9일에 SKT 코딩 테스트가 있으니까 어쩔수 없다.
시간이 남을때 코테 문제푸는거 만큼 생산적이면서 시간 잘 가고 머리 잘 굴러가는 것 만큼 없다...

뭐 오늘도 화이팅하고 내일도 화이팅하고 내 주변 친한 사람들 다 행복했으면 좋겠다.

'진짜 일기' 카테고리의 다른 글

2023.09.07  (0) 2023.09.07
2023.09.06  (0) 2023.09.06
2023.08.29  (0) 2023.08.29
7/23 일기  (0) 2022.07.23
7/19 일기  (0) 2022.07.19

글을 안 적은지 꽤 오래됐다는 것을 깨달았다.
다시 일기를 써보자..

내가 일기를 쓰는 이유가 뭔지 생각해 봤다.
이전에도 그렇고 지금도 그렇고 진행 방향을 알 수 없어서 그런 것 같다.

글을 쓰다 보면 뭔가 깨닫는 것이 생기지 않을까..
일단 오늘은 9월의 TODO LIST를 노션에 적을 것이다.
그리고 실행에 옮겨야겠지.


일단, 글을 쓰지 않을 때 어떤 일이 있었는지 적어보자.

42 Seoul의 마지막 과제 Transcendence는 3월에 마쳤다.
하지만, 마지막 시험은 보지 않았다.
왜냐하면 네이버 부스트 캠프 AI Tech에 들어갔기 때문이다.
이것만으로는 "그래서 왜 안 봤는데?"라는 생각이겠지만,,, 뭐... 너무 바빴다.
정해진 시간이 있어서 무언가 하기 힘들었다.

일단 그래서 6월 2일(?)쯤에 아마 블랙홀로 빠졌다.
사실 블랙홀로 간지 알게 된 건 슬랙에서 퇴출당했기 때문이다.
그때도 계속 바빴기 때문에 뭐... 신경쓸겨를이 없었다.

계속 바빴다고만 하는 것이 핑계 같지만 맞다.
지금 생각해 보면 할 수 있었던 것 같다.

네이버 부스트 캠프 AI Tech에서는 8주 동안 Python부터 시작해서 Numpy, Pytorch, Pandas로 기초를 학습할 수 있었다.
학습할 수 있었던 거지 내가 흡수할 수 있는 것은 대략 3할 정도..?면 많이 쳐준 느낌이다.
계속해서 대략 16주 동안은 딥러닝의 간단한 태스크들을 공부했다.
Classification, Object Detection, Semantic Segmentation, OCR, Multi-label Classification 등의 모델링을 주로 담당해서 진행했다.
사실 모델링이랄게 예전처럼 신나게 로직을 정리해서 코드를 짜는 것이 아니다.
모델을 가져와서 적용해 보고 성능이 잘 나오게 되면 논문을 읽고 어떤 놈인지 성격을 파악해 줘야 한다.

내가 구현할 게 아니고 이미 구현된 친구들을 가져와서 적용하고 특징을 파악하는 것만 해도 시간이 굉장히 많이 걸리기 때문에 4개의 Competition에서 살아남기 위해선 어쩔 수 없었다.

대략 5달 정도의 학습은 내가 온전히 받아먹지 못했고 3할 정도 소화했던 것 같다.
그래서 이후에 뭘 해야 할지 생각만 계속했다.
Python을 까볼까.. 논문을 찾고 구현해 볼까... 책을 읽고 수학, 딥러닝 기초 등을 공부할까... 이력서 수정해야 하는데....

결국 가장 쉬웠던 건 책을 사고 읽는 것이었다.
그래서 두 권을 빠르게 사버렸다. (딥러닝을 위한 수학, 밑바닥부터 시작하는 딥러닝1)
일단 두 책을 읽는데 사실 이해 안 되는 부분이 꽤 많다.
밑바닥부터 시작하는 딥러닝1은 그래도 많이 이해했지만, 수학을 다시 손에 잡고 머리를 돌리기는 아주 어려운 것 같다.
꾸준히 해서 기름칠해야겠다. (기록할 예정)

운동도 다시 시작해 보고, 코테 준비도 다시 할 거고, 면접 준비 질답도 시작할 거고 뭐 다 할 거다.
계획은 창대하겠지만 끝이 어떻게 될지.... 뭐 그냥 잘되도록 노력하자

잘할거야
난 잘할 거니까 믿고 잘해보자!

'진짜 일기' 카테고리의 다른 글

2023.09.06  (0) 2023.09.06
2023.09.02  (2) 2023.09.02
7/23 일기  (0) 2022.07.23
7/19 일기  (0) 2022.07.19
7/13 일기  (0) 2022.07.13

일반적으로 하나의 Process는 하나의 Thread를 가지고 작업을 수행한다.
하지만, Multi Thread란 하나의 Process에서 다중의 Thread가 동시에 작업을 수행하는 것을 의미한다.
또한, Multi Process는 여러 개의 CPU를 사용하여 다중의 Process를 동시에 작업을 수행하는 것을 의미한다.

Multi Thread, Multi Process 모두 동시에 어떤 작업을 한다는 점이다.
여기서 둘의 차이는 독립적인 메모리 공간을 갖고 있느냐의 차이이다.
Multi Process는 각자 독립적인 메모리 공간을 갖지만, Multi Thread는 Thread가 상위 Process의 메모리 공간을 공유하여 사용한다.(Stack 메모리 공간은 예외)

이처럼 Multi Thread는 메모리 공간의 낭비가 적고 다수의 작업을 동시에 진행할 수 있다는 장점이 있다.


Context Switching

 

컴퓨터가 동시에 처리할 수 있는 최대 작업수는 CPU코어의 수와 같다.
그럼 CPU코어 보다 더 많은 Thread를 사용하게 되면 정해진 순서대로 작업을 번갈아가며 수행한다.

이렇게 각각의 Thread가 교체될 때, Thread 간의 Context Switching이라는 것이 발생한다.
현재 Thread의 작업을 하는 중에 다른 Thread의 작업을 하려면 현재 Thread의 작업을 저장하고, 다음 Thread를 불러오는 과정을 말한다.

이런 과정으로 알 수 있는 점은 무조건 Thread가 많다고 좋은 것이 아니라는 것이다.
저장과 불러오기의 과정에서 걸리는 시간이 커지게 되면 효율이 저하될 수밖에 없기 때문이다.


C#의 Thread Pool

 

사전에 일정 개수의 Thread를 만들어 놓고 작업 요청하게 되면, 사용가능한 Thread를 할당하여 수행하게 된다.
즉, 작업 요청 시에 Thread를 매번 만드는 것이 아니라 대기 중인 Thread를 불러서 작업을 요청하는 것이다.

그러면, Thread Pool의 최대 개수를 넘어선 작업을 요청하게 되면 작업은 점점 쌓이게 된다는 문제가 있다.
또한, Thread가 무한루프를 돌아도 문제가 생긴다.


이야기 예시

 

사장(CPU)과 알바관리 매니저(Process), 알바(Thread)가 하나의 가게를 맡았다고 하자. 끔찍하네

사장은 매니저에게 이것저것 시키게 된다.
매니저는 사장에게 들은 일거리를 알바에게 시킨다.
근데 알바는 일의 순서대로 차근차근 일을 하지만 몸이 하나기에 한 번에 여러 가지 일을 할 수 없다.
그렇기에 알바가 일을 해도 일이 끊임없이 쌓이게 된다.

매니저는 일이 너무 많이 쌓여서 효율이 없다고 판단하게 되어 알바를 여러 명 쓰게 된다.
근데 하루는 일이 평소보다 많이 안 들어와 놀고 있는 알바가 보이게 된다.
어떤 날은 일이 많고 어떤 날은 일이 많지 않다.
그래서 매니저는 알바들을 합숙시키게 된다.(Thread Pool)
이렇게 일이 밀릴 때마다 한 명씩 내려와 일을 시키는 양상이 돼버린 것이다.

이렇게 사람으로 생각하면 끔찍하지만 하나의 부품들로 생각하면 편하고 효율적인 것이다.

대표적인 OpenGL의 예제들을 살펴보면 아래와 같은 형태의 데이터를 Vertex Shader에 전달해준다.

std::vector<glm::vec2>	texCoord = {
	1.0f, 1.0f,
	1.0f, 0.0f,
	0.0f, 0.0f,
	0.0f, 1.0f
}

단순하게 생각해보면 Texture를 가져온 데이터를 좌표값을 나타냈을 때,  아래처럼 생겼기에 화면에 맞추는 작업이구나 하고 넘어갈 수 있다.

left  top(0.0f, 1.0f)
right top(1.0f, 1.0f)
left  bottom(0.0f, 0.0f)
right bottom(1.0f, 0.0f)

 

하지만, 이렇게 맞춰서 변환하는 과정은 생각보다 길고, 복잡할 수 있다.


Tangent Plane

구로 예시를 들어서 말하는 것으로 하겠습니다.

구에서 임의의 한 점과 맞닿는 평면, 이 평면이 Tangent Plane이다.
또한, 이런 평면을 좌표계 기준으로 잡는 공간을 Tangent Space라고 한다.


OpenGL에서 Tangent Plane이 이 어떻게 쓰일까?

OpenGL에서는 3개의 Vertex로 이루어진 삼각형을 하나의 Tangent Space에 존재한다고 생각한다.
그래서 주어진 Vertices와 Indices를 기준으로 Tangent Space를 계산한다.

주어진 Vertices와 Indices에 따라 2개의 벡터를 생성[$E_{1}, E_{2}$]하고,
주어진 Vertices에 대한 TexCoord에 따라 u와 v를 2개씩 생성[$\begin {bmatrix} u_1 & v_1 \\ u_2 & v_2 \end {bmatrix}$]한다.

여기서 우리는 Tangent, Bitangent Vector를 구할 수 있다.

$\begin {bmatrix} E_{1x} & E_{1y} & E_{1z} \\ E_{2x} & E_{2y} & E_{2z} \end {bmatrix} = \begin {bmatrix} u_1 & v_1 \\ u_2 & v_2 \end {bmatrix} \begin {bmatrix} T_x & T_y & T_z \\ B_x & B_y & B_z \end {bmatrix}$

사실 이렇게 보면 잘 모르겠어서 여러 가지로 생각해봤다.

  1. 이 변환 과정은 한 번에 진행되는 것이 아니다.
  2. 여러 가지 좌표계의 변환을 통해 생긴 것.
  3. 단순히 변환 행렬을 구한 것이지만 여러 개의 혼합된 버전일 것.
  4. 해당 좌표계로 이동, 좌표계 방향에 맞춰 회전, 해당 크기로 축소/확대의 혼합
  5. 3차원에서 2차원으로 변환하는 것이기에 이렇게 구하는 것.
  6. 한 번에 변환하는 행렬을 구한 것일 듯?

결국 구하고 싶은 행렬을 우린 TB Matrix라고 생각했을 때, 생성된 uv Matrix의 역행렬과 2개의 Vector로 이뤄진 Matrix를 곱하면 구할 수 있다.

$\begin {bmatrix} T_x & T_y & T_z \\ B_x & B_y & B_z \end {bmatrix} = \begin {bmatrix} u_1 & v_1 \\ u_2 & v_2 \end {bmatrix} ^{-1} \begin {bmatrix} E_{1x} & E_{1y} & E_{1z} \\ E_{2x} & E_{2y} & E_{2z} \end {bmatrix}$


하지만 이와 같은 과정에서 TBN의 Space에서 서로가 직교하지 않을 수 있다.
그렇기 때문에 그람-슈미트 직교화를 통해 각각의 벡터가 직교하도록 만든다.

위의 방법처럼 한 번에 구하는 것이 아니라, Tangent만 구해서 Shader로 넘겨준다.
이후 Shader에서 Normal과 Tangent를 Cross Product 하면 Bitangent의 값이 나온다.

'OpenGL' 카테고리의 다른 글

Normal Vector의 변환 행렬  (0) 2022.11.14
OpenGL[Lighting]  (0) 2022.10.18
OpenGL[Coordinate System]  (0) 2022.10.18
OpenGL[02](First Triangle)  (1) 2022.10.12
OpenGL[01](Shader)  (1) 2022.10.12

+ Recent posts