python package 알아보기

Today I Learned 날짜 2024년 1월 18일 목요일 내용 하루종일 함수를 만들면서 코드를 짰다. 재밌다! nltk 파이썬 패키지 중 하나로 자연어 처리를 위한 패키지이다. 자연어라 하면 그냥 사람들이 쓰는 언어(영어, 한국어, 일본어 등등)다. 자연어 처리라 하면, 사람들이 작성한 문장을 단어 단위로 쪼개기도 하고, 그 쪼갠 단어를 원형으로 변형해준다. 예를 들어, “벌써 이번 달의 절반이 지났다니 시간 참 빠르네” 라는 문장을 “벌써”, “이번”, “달”, “의”, “절반”, “이”, “지났다니”, “시간”, “참”, “빠르네” 로 쪼갠다. 보시다싶이 그냥 띄어쓰기로 쪼개는 게 아니라 실제 어근 단위로 쪼개준다. 물론 한국어보단 영어가 훨씬 정확하다. 위 단어들은 원래 형태가 아니기 떄문에 “빠르네”를 “빠르다”로 바꿔준다거나 “의” , “이”와 같은 조사(영어에서는 관사)를 제거해주기도 한다. 의미 없는 단어들을 불용어(stopwords)라고 한다. ...

2024년 1월 18일 · 2 분 · 배준수

업보 청산하기

Today I Learned 날짜 2024년 1월 17일 수요일 내용 일이 많이 꼬여서 밤 새는거 아닌가 싶었으나 늘 그랬듯 답을 찾았다. 또경변수 지긋지긋한 ECS Task가 또 말썽을 부린다. 오늘 아침에 구글 스프레드시트에 추가되었어야 할 데이터가 추가 되지 않았다! 하필 1시간이 지나버려서 Task 기록도 안남았다. 실행 주기를 바꿔 실행해봤더니 또 환경변수를 못찾는다고 땡깡부린다. 하… 그동안은 테스트서버였고, 지금은 실서버라서 Task에 문제가 전혀 없는데 도대체 어디부터 또 시작해야 할지 눈 앞이 깜깜해졌다. 환경변수가 있는데 왜 못찾냐고! Task 상세정보를 봤는데 내가 알던 환경변수 경로와 달랐다. 생각해보니 실서버는 production을 위한 환경변수를 받아야 하는데 추가를 안해줬다. 진짜 없어서 못찾았구나? 그래도 미안하진 않다. 추가해주니 잘 작동한다. ...

2024년 1월 17일 · 4 분 · 배준수

DKIM 헤더에 포함시키기

Today I Learned 날짜 2024년 1월 16일 화요일 내용 다행히 Task들이 얼추 마무리 되었다. 얼추인 이유는 실서버에서도 잘 되나 확인해야 하니까.. DKIM이 없는 이유 DMARC 설정을 위해 SPF와 DKIM을 적용했었다. 이메일을 받으면 원본에서 header를 확인할 수 있다. 이것처럼 DKIM은 흔적도 없다. DMARC는 둘 중 하나만 통과하면 되기 때문에 기능에 이상은 없으나 분명 설정한게 나타나지 않으니 찝찝해서 그냥 지나칠 수 없었다. 고민의 흐름은 다음과 같았다. 이 인증의 핵심은 alph.kr 이라는 도메인에서 온 메일은 안전하다는 증거다. alph.kr은 AWS의 Route53에서 라우팅한다. 나는 테스트를 위해 info@alph.kr의 daum 메일로 보내고 있다. 목적지는 gmail 이 DMARC는 누가 어떻게 확인하는가? 우선 이 고민에 대한 답을 얻었다 ...

2024년 1월 16일 · 3 분 · 배준수

AWS ECS와 S3 버킷의 통신 해결

Today I Learned 날짜 2024년 1월 15일 월요일 내용 드으으으으디어 ECS를 해결했다! ECS 정복 직전 너무 자주 말한듯 하지만.. ECS 클러스터가 S3 버킷에서 환경변수를 가져오지 못하고 있었다. 질문 I am encountering an issue with my ECS service where tasks are consistently failing during deployment. The specific error message I receive is as follows: 1 ResourceInitializationError: failed to download env files: file download command: non empty error stream: service call has been retried 5 time(s): RequestCanceled: request context canceled caused by: context deadline exceeded ECS tasks are configured to download environment files from an S3 bucket. My ECS service is in the Seoul region (ap-northeast-2), and the S3 bucket is in the US East (Ohio) region (us-east-2). The S3 bucket and objects are not set to public access. I suspect that the issue might be related to timeout settings, as the error indicates that the request is canceled after multiple retries due to a context deadline being exceeded. I have tried setting the startTimeout and stopTimeout in the task definition JSON to 120 seconds, but this has not resolved the issue. ...

2024년 1월 15일 · 5 분 · 배준수

ECS 클러스터는 왜 일을 안할까?

Today I Learned 날짜 2024년 1월 12일 금요일 내용 타운홀미팅이 있어 오전밖에 시간이 없었다. 딱히 시간이 있었다고 해결이 됐을 것 같진 않지만.. SEO HTML의 <meta> 태그는 해당 페이지에 대한 다양한 정보를 표현하기 위해 사용한다. 쉬운 부분이라 다들 알겠지만, 나는 속성에 대해 몰랐던 부분이 있었는데, title 속성은 없다. meta가 아니라 head에 title 태그를 추가하면 된다. 최근 keyword 속성은 잘 쓰지 않는다. 너도 나도 이것 저것 추가를 많이 하다보니 알고리즘이 신경쓰지 않는다고 한다. description : 뭔가 읽기 편하고, 간결한게 좋을 것 같지만 사실 최근에는 검색의 핵심이다. 타겟 유저가 검색에 포함할 법한 단어가 포함되어 있는 것이 좋다. 따라서 동어반복은 좋지 않다. 그렇다고, 말이 안되는 단순 단어 나열만 작성하면 알고리즘이 무시한다. 이정도…? 구글 검색 봇의 마음은 참 갈대같다. ...

2024년 1월 12일 · 3 분 · 배준수

Amazon SES에서 DMARC 설정하기

Today I Learn 날짜 2024년 1월 11일 목요일 내용 하루종일 코드보단 AWS 설정만 건드렸다. DMARC Shopify에서 메일이 왔다. Gmail과 Yahoo에서 DMARC에 관한 정책이 바뀌었다는 내용이다. 우리가 커스텀 도메인을 사용하기 위해, 이 정책에 맞게 DMARC를 추가해주어야 한다. 아니면, 2월부터는 Shopify 쪽에서 제공하는 계정으로 발송처리 된다. 고객들이 알파리뷰가 보낸 메일임을 알 수 있도록 커스텀 메일주소를 계속 유지시켜야 한다. DMARC(Domain-based Message Authentication, Reporting and Conformance)는 이메일 인증 프로토콜이다. 이메일 도메인 소유자가 이메일 스푸핑으로 알려진 무단 사용에서 도메인을 보호할 수 있도록 설계되었다. DMARC의 구현 목적은 비즈니스 이메일 공격, 피싱 이메일, 이메일 사기 등 사이버 위협 행위에 도메인이 이용되지 않게 보호한다. <위키백과> ...

2024년 1월 11일 · 2 분 · 배준수

공부한 보람 느끼기

Today I Learned 날짜 2024년 1월 10일 수요일 내용 빨리 빨리 처리를 못하니 업무가 쌓인다. 똑띠 한번에 처리하자. 리뷰 처리 오늘 또 실수를 했다. 리뷰가 작성되면, 유저는 이름, 성 , 이메일 등을 입력해야 한다. 이때 입력한 이메일로 DB에서 고객정보를 탐색해 이름과 성을 덮어쓰고 저장했다. 어제 이 부분을, 덮어쓰지 않고 저장하도록 코드를 변경했다. 확인해보니 이름이 저장되지 않고 비어있었다. 작성된 리뷰를 저장할 때 사용하는 클래스는 여러가지가 있다. 기본 클래스를 바탕으로, 스토어 리뷰와 주문한 고객의 리뷰(검증된 리뷰), 주문하지 않은 고객의 리뷰(검증되지 않은 리뷰), 관리자의 리뷰가 모두 대동소이하다. 각 클래스는 비슷한 메서드를 필요에 맞게 각각 정의하고 있다. ...

2024년 1월 10일 · 2 분 · 배준수

ECS에서 스크립트 실행하기

Today I Learned 날짜 2024년 1월 9일 화요일 내용 이거하랴 저거하랴 정신 없는 하루였다. 내일 별일 없겠지.. Weekly Review Report email 보완 어제 전송되었어야 할 메일들이 전송되지 않았다. 해당 Task가 등록된 service의 로그를 확인해보았는데, 두가지 오류를 발견했다 invalid HTTP request received 라는 오류가 있었는데, 내가 새로운 Task 예약 규칙을 생성하기 전부터 찍혀오던 오류였다. 따라서 내가 추가한 것과는 무관한 로그라고 판단했다. ResponseValidationError : UTC 시간 기준으로 어제 오전 10시에 한번 찍혀있는 로그였다. 이전에 비슷한 오류가 발생하지 않아 내 Task가 작동하지 않은 원인일 거라고 추정했지만 석연치 않은 부분도 있었다. 내 Task는 매주 월요일 오전 0시 부터 1시간 간격으로 24번 실행되야 한다. 따라서 코드가 잘못되어 에러가 발생했으면 오전 1시 이전에 발생했어야 맞다. 혹시 설정이 잘못되었나 싶어 이것저것 살펴보다가 내가 만든 예약 Task의 Task definition이 개정된 버전이 지정되있지 않아 잘못된 Task definition이 걸려있었다. 수정하려고 설정에 들어갔을 때는 제대로 설정되어 있는데.. 버그인가 싶어 제대로 고쳐주고 내일 다시 실행되도록 했다. 내일은 제발 되었으면.. ...

2024년 1월 9일 · 3 분 · 배준수

월요일 월요일은 힘들

Today I Learned 날짜 2024년 1월 8일 월요일 내용 이것 저것 중구난방으로 처리하느라 이도저도 아닌 하루가 된 느낌이다. Weekly Review Report Email 지난주에 Task로 등록해두었지만, 메일이 발송되지 않았다. Log를 확인해보니 Invalid HTTP request received. 라고 뜬다. 정확히 내가 설정한 Task로 인한 것인지 아직 확실히 확인하지 못했다. 내일 조금 더 본격적으로 확인해서 무엇이 문제인지 찾아볼 예정. Localization 이전에도 느꼈지만 우리 서비스의 Widget 렌더링 로직은 참 어렵다. 우리 서비스는 리뷰 작성 페이지와 위젯의 언어를 바꿀 수 있는데, 이를 Localization이라 부른다. 이번에 포르투갈어, 독일어, 중국어를 추가해줘야 했다. ...

2024년 1월 8일 · 2 분 · 배준수

1/52

Today I Learned 날짜 2024년 1월 5일 금요일 내용 한 주간 있었던 리뷰 현황에 대한 변화를 ECS 예약된 Task로 설정했다. 아마 다음주 월요일 오전에 발송될테니, 테스트 샵의 계정으로 들어가 월요일에 출근해서 확인해보면 될 듯. 곧 시작될 스프린트의 공수에 대해 견적을 열심히 냈는데 아직 내가 개발해야될 것에 대해 감이 잘 안 온다. 하룻강아지 범 무서운 줄 모른다고 온보딩때 까불다 그렇게 망해놓고 아직 멀었나보다. 회고 올 해 첫 주가 끝났다. 아직 갈 길 이 참 멀었으니 올해도 화이팅 ...

2024년 1월 5일 · 1 분 · 배준수