2024년 상반기 회고하기
·
회고
일년에 한번 정도만 회고해도 충분하지 않을까 하는 생각을 했었다.하지만 7월이 절반을 넘어갈때 쯔음 내가 상반기때 이뤄낸게 뭐가 있지 라는 생각이 내 머리 속을 가득 채웠다.그리고 하반기 목표를 보면서 이제부터 많을 것들을 이뤄내려고 계획을 하고있는데 대체 상반기에는 무엇을 위해 달려왔을까를 모르겠더라.  그래서 회고를 통해 지난 6개월간 무엇을 했는지를 정리해보고자 한다.   책 읽기Keep1, 2분기에는 소설책을 많이 읽었다. 또한, 사무실에서는 짬 날때마다 개발 책을 읽고 있다.Problem아직 독후감을 하나도 안적었다.... 대신 책에서 나에게 와닿는 말들을 공책에 필사하고 있다.Try좀더 많이 읽자. 요즘 책을 읽는 시간이 부족하다. 계획표상 하루 30분이라도 책을 읽자고는 하는데, 우선순위가 ..
[알고리즘] 이진수를 10진수로 계산할 때 num = num * 2 + binary[i]가 되는 원리
·
카테고리 없음
십진수로 1234를 처리한다면...1. 처음 값은 0입니다.2. 첫 번째 자리가 1입니다. 0 * 10 + 1 = 1 3. 두 번째 자리가 2입니다. 1 * 10 + 2 = 12 4. 세 번째 자리가 3입니다. 12 * 10 + 3 = 123 5. 네 번째 자리가 4입니다. 123 * 10 + 4 = 1234  이처럼 앞의 값을 유지하는 성질이 있음. 이를 이진수로 적용한다면11101를 처리한다면...1. 처음 값은 0입니다.2. 첫 번째 자리가 1입니다.0 * 2 + 1 = 13. 두 번째 자리가 1입니다.1 * 2 + 1  = 34. 세 번째 자리가 1입니다.3 * 2 + 1 = 75. 네 번째 자리가 0입니다.7 * 2 + 0 = 146. 다섯 번째 자리가 1입니다.14 * 2 + 1 = 29 10..
TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard' 에러 임시 해결책
·
카테고리 없음
최근에 파이썬 버전이 3.12.4로 업데이트 되면서 pydantic 과 충돌이 일어나는 듯 하다. 깃헙에 올라온 issues들 보니까 일단 해결전까지는 버전을 낮추라고 한다. 나의 경우 docker 이미지로 3.12-slim 를 사용하고 있다보니 새롭게 이미지를 만들면서 업데이트된 파이썬 버전이 들어가서 로컬에서 잘 되던 코드가 도커로 올리니 에러가 발생했다. 다행히 3.12.3-slim 이런 식으로 세부 버전 이미지도 올라와 있어서 이걸 이용했다.
스프링 테스트와 Mock || @Mock, @InjectMocks VS @MockBean
·
카테고리 없음
만들던 프로젝트에서 여러가지 예상치 못한 오류들이 발생하면서, 그리고 리팩토링을 해보고싶어서, 테스트 코드를 만들어봐야겠다는 생각을 하고, LLM들이랑 열심히 대화해서 테스트 코드를 만들어봤다.  이 과정을 진행하면서 Mock 객체를 위해 여러 애노테이션을 사용해봤다. getForEntity는 외부에서 정보를 가져오는 메서드인데, 내 로그인 기능에 이 기능이 필요해서아래와 같이 Mock객체를 만들어보았다.when(restTemplate.getForEntity(any(String.class), eq(GoogleInfResponse.class))) .thenReturn(mockUserInfoEntity); 그리고 이를 위해 (이상한 코드인걸 알고있다.)@SpringbootTest@ExtendWi..
Sentence Transformers + aws lambda + fast api + docker 사용해보기(문장 유사도 추측 api 만들어보기)
·
카테고리 없음
* 필자는 람다도, sentence transformer도 처음 사용해본다. 사실 인공지능도 처음 써본다. 그리고 당연하겠지만 부가적으로 사용되는 Mangum, aws cli 도 처음 사용해본다. 하지만 글을 읽으면 최소한 어떻게 람다에서 sentence transformer를 돌리는지, 그리고 성능은 어떤지는 알 수 있을 것이다.* aws의 과금은 무섭다. 아직까진 과금될만한 요소가 없긴하나, 혹시모르니 자주 확인하자. 지금도 EC2 Container Registry(500MB-month Free Tier)에서 200MB정도를 사용했다는데 어디서 사용되었는지 모르겠어서 덜덜 떨고있다.* 필자는 파이썬을 잘 모른다. 그렇기에 왜 저렇게 코드를 만들었지 싶은 부분도 있을 것이다. 잘 참아주길 바란다.* 오..
문장 분리 라이브러리 사용기(NLTK, spacy)
·
카테고리 없음
내가 만드는 서비스에서는 매일 아침마다 파이썬 스크래퍼가 특정 뉴스 사이트에서 내용을 가져온다. 지문을 통째로 가져오기에, 문단들을 하나의 리스트로 우선 합치고나서, 몇가지 간단한 조건으로 문장별로 리스트에 담도록 하였다. 맨처음에는 괜찮은 줄 알았다. 하지만 스크래핑하는 데이터가 쌓일 수록 하나둘씩 문제가 발생하였다. 공백 문자 대신 NWNBSP라는 공백 문자가 들어가는 경우는 예외처리를 시키도록 하였는데,다음부터가 문제이다. 1. 아래처럼 사람이름 S. khan 은 “. “ 구분자로는 처리하지 못함. 2. 문장끝이 인용이면 .” 와 같은 형식이기에 슬라이싱하지 못함.- On April 3, Michael Shellenberger published a thread with a series of e-ma..
[짧글] AI와 개발자
·
카테고리 없음
AI에게 물어보거나, 코드를 짜도록 하는 경우가 많다. 이로인해 인간의 일자리가 AI에게 100%대체되거나 상당수 줄어들 것이라는 불안감을 지닌다. 하지만 완전하게 대체되기는 어려울 것이다. 우선 chatGPT의 P는 pre-trained 즉, 사전 학습된 데이터라는 점에서 보자. 이 사전 학습된 데이터들은 사람들에게서 왔다. 여러 질문들에 바로바로 답변들을 해주지만, 그 답변들의 근간은 사람들이 작성해놓은 자료들이다.가끔 기술블로그(내 블로그도 그럴 수 있겠지만)에서 잘못된 정보들을 제공하는 경우가 있다. 하지만 현재의 인공지능들은 이 말들이 옳은지 틀린지 검증하는 프로세스가 얼마나 잘 되어있는지 모르겠다. 할루시네이션 문제를 해결하려고 많은 연구자들이 노력하고 있을 것이다.하지만 비단 할루시네이션을 ..
[Postgresql]GenerationType.AUTO와 GenerationType.IDENTITY는 생성되는 시퀀스가 다르다. 추후에 변경했을 때 후처리 방법.
·
백엔드
내가 개발 중인 서비스에 User라는 엔티티가 있고, 처음에는 아래와같이 설정하였다. public class User extends BaseTimeEntity { @Id @GeneratedValue private Long id; // provider + id @Column(unique = true) @Schema(description = "provider + id로 구성된 유저 아이디", example = "g_1234567890") private String username; // 이름 private String nickname; private String password; private String role; @Builder pub..