머리가 나빠 몸을 고생시킴

Today I Learned 날짜 2024년 1월 4일 목요일 내용 목표 없는 노력만큼 바보 같은 것도 없다. 그럼 나는 꽤 바보다. 매일 노션에서 Todo 작성하고, 업데이트하면서 볼 수 있는 문구다. 근데 내가 그렇다. 조금 더 정확히 말하자면 목표가 있었는데 잘못된 목표였다. 그래서 아예 바보까진 그렇고 약간 바보라고 하겠다. 그래도 얻은 것은 있으니까… index.html만 화면이 안나타나서 어제부터 머리를 쥐어뜯었다. 문득 어떤 화면이 떠야 정상일까 궁금해서 로컬에서 index.html을 크롬으로 열어봤는데 아무 것도 안뜬다. 안 뜨는게 문제가 아니였다. 로컬에서 확인해보니 루트 경로로 들어가서 index.html로 가도 결국 메인 랜딩페이지(home/main)이 뜨게 된다. ...

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

아마존엔 없는 것 빼고 다 있다.

Today I Learned 날짜 2024년 1월 3일 수요일 내용 SQLAlchemy 매주 새로 생성된 리뷰들에 관한 정보를 담은 메일을 보내는 Task를 얼추 완성했다. CSS에 대해 추가적인 피드백이 필요하긴 하지만 우선 로직과 코드 자체에 대해 확인이 필요했다. 명명 이번엔, 변수나 함수 이름, 엔드포인트에 대해서 조금 더 신경썼다. 맨 처음 코드를 작성할 떈 아무래도 머릿속에 생각나는대로 적거나 GPT가 써준대로 적게 된다. Task를 진행하다보면 어느새 이 이름에 익숙해져 그대로 PR을 올리는 경우가 많았다. 다른사람이 내 코드를 볼 때, 이름의 의미를 쉽게 파악할 수 있다면 코드를 읽기 훨씬 수월해지기 떄문에 PR올리기 전 코드를 정리하는 시간을 따로 가졌다. 요청을 주고 받을 때 양쪽의 변수 이름을 동일하게 해서 함수의 흐름을 따라가는 사람이 헷갈리지 않도록 했다. 함수가 결국 반환하는 데이터가 무엇인지를 이름을 통해 알 수 있게 했다. 예를 들어, 내 Task가 결국 email을 보내야 하는 거지만 내가 구현할 함수 중에는 그저 Email을 위해 필요한 데이터만 조회하는 함수도 존재한다. 이 함수의 이름에는 email이 들어갈 필요가 전혀 없다. 나야 Task를 진행하면서 자연스레 넘어가게 되지만, 배경을 모르는 사람이 보면 코드를 볼 때 존재하지도 않는 메일 전송과 관련된 로직을 신경써야 하니까. ...

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

Email HTML에서 margin 적용하기

Today I learned 날짜 2024년 1월 2일 요일 내용 올해 첫 업무 시작. Email CSS 고객에게 발송할 이메일 양식 HTML 의 CSS를 계속 진행하고 있다. 위아래에 margin이 적용되지 않았다. 구글링 결과, 플랫폼이나 브라우저 마다 Email Template 렌더링이 제각각이라는 말이 많았고 특히 부모의position 을 relative 로 두고 자식을 absolute 로 두었을 때 위치가 적용되는지에 대해 너무 의견이 분분했다. 나는 템플릿을 table로 구성해두었는데, table의 위치에 margin 을 적용하지 않고 빈 셀 하나를 추가해주는 방식으로 구현했다. ...

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

CSS로 메일 양식 만들기

Today I learned 날짜 2023년 12월 29일 금요일 내용 어제 막힌 난점은 해결했다. 도커 컨테이너 내에서 스크립트를 실행하니 메일은 발송되었다. 딱히 추가로 건드려야 할 설정이나 변수는 없었다. 기존에는 안되었는데, 로직상 가져온 데이터가 없었기 떄문에 발송되지 않았던 모양이다. 로컬 DB에는 테스트를 위한 적절한 리뷰 데이터가 없기 떄문에, 메일에 담을 데이터들을 임의의 값으로 지정해주었더니 헤결됐다. 수신자를 내 이메일로 설정해서, 어떤 화면이 고객이 보게 되는지 확실히 볼 수 있었다. HTML에 데이터를 담는 것도 금방 해결되었는데, 이미 우리 서비스에 Jinja2 템플릿을 사용하고 있었기 때문이다. 그냥 양식에 맞춰 변수를 집어넣기만 해주었다. 생각지도 못한 부분에서 하루종일 고생했는데, 이메일에 담길 HTML을 로컬에서 열어보았을 떄와 메일로 받아보았을 떄가 다르다. local에선 적용된 padding이 안되있는 경우라던가, 예상 외의 상황이 많다. 이러한 특징은 각 메일 플랫폼별로 모두 다르다고 한다. 고객이 네이버, 구글, 아웃룩 등 받을 곳은 무궁무진한데 출력되는 형식이 매번 달라지니 이메일 만드는게 쉽지 않은 것 같다. 난 그냥 CSS도 못하는데… ...

2023년 12월 29일 · 1 분 · 배준수

별개의 DB 관계 파악

Today I Learned 날짜 2023년 12월 28일 목요일 내용 매 주, shop의 review에 관해 발생한 변화들을 담은 메일을 발송해야 한다. 어제 가진 의문들에 대해 집중적으로 고민한 덕에 많이 진행됐다. 현재 발송하는 shop의 이름 각 메일에는 수신하는 shop에 대한 정보가 담겨야 한다. 그렇다면 그 샵의 정보를 통해 조회하여 담아야 하는데 어떻게 알 수 있을까에 대해 고민됐다. 조금만 고민해보니 정말 쓸데 없는 생각이었다. 모든 shop에 보내야하니 그냥 각 shop에 대해 필요한 정보를 다 가져와야 했다. ...

2023년 12월 28일 · 3 분 · 배준수

2023년 회고록

2023년 회고록 2023년이 일주일 남았다. 크리스마스 분위기가 특별히 체감되지 않기도 하고.. 내게 뜻 깊은 한해라 되돌아보며 회고하는 시간을 가졌다. 꽤 오래 WIL을 쓰면서 회고를 반복해왔고, 근래에는 TIL을 쓰고 있다. 하루를 얼마나 바쁘게, 의미있게 보냈는지를 적나라하게 볼 수 있다. 그리고 시간의 흐름을 지나고나서보면 꽤나 다르게 보인다. 정확히는, 과거의 내가 꽤나 현명하지 못했다는 생각이 많이 든다. 예를 들어, 1번부터 5번까지의 선택지를 두고 치열하게 고민한다. 내 딴에는 열심히 고민했고 최선의 결론을 내렸다고 해도 나중에는 이해가 잘 안된다. “왜 정답인 4번을 냅두고 3번을 생각했을까?”, 혹은 “왜 6번, 7번 선택지는 몰랐을까?”. 심지어는 “그 쓸데없는 걸 왜 고민했을까?“까지도. 나를 되돌아본다는 것은 분명 가치있는 일이다. 꼭 더 나은 모습을 도출해내지 못하더라도 스스로를 더 잘 알게 되는 것만으로도 말이다. ...

2023년 12월 27일 · 5 분 · 배준수

Amazon ECS 알아보기

Today I Learned 날짜 2023년 12월 27일 수요일 내용 Verification Email은 테스트서버에서도 이상이 없었다. 코드가 힘들기 보단 이해가 힘든 Task였음. Review Report Email 주 1회, 한 주간 리뷰의 추가 상황에 대해 메일을 보내줘야 한다. 가장 우선 파악해야할 것은 세 가지였다. 어떻게 정기적으로 메일을 보낼 것인가? 메일 형식은 어디에 어떻게 설정할 것인가? 메일에 데이터를 어떻게 담을 것인가? 우선 반복된 동작은 cron과 cronjob에서 처리한 다는 것은 알고 있었다. 문제는 이 코드를 누가 언제 실행하는지 였는데… 결국 ECS였다. 이에 관한 설명인 밑에서 하고, ECS에서는 특정 이벤트나 시간을 기준으로 Task를 계획할 수 있다. ...

2023년 12월 27일 · 2 분 · 배준수

Email 관련 Task 완료!

Today I Learned 날짜 2023년 12월 26일 내용 지난 주에 정리했던 대로 로직을 완성했다. 기존의 messaging_log를 처리하는 스크립트는 messaging의 비활성화 여부를 체크하지 않기 떄문에, 스크립트를 새로 생성했다. 여기서는 messaging 설정에 따라 messaging_log의 sending_status를 출력하도록 했다. ON 일땐 보내는 로직이 발생하지만 필요한 param이 모두 입력되지 않았기 떄문에 발송 오류가 발생하여 Unable로 설정되야 하고, OFF 일 때는 보내선 안되므로 CHANNEL_OFF 로 설정되야 한다. 로컬에선 문제 없이 작동한다. 회고 노로바이러스 떄문에 너무 힘들다. ...

2023년 12월 26일 · 1 분 · 배준수

좋은 마무리

Today I Learned 날짜 2023년 12월 22일 금요일 내용 어제 막혔던 부분이 술술 해결됐다. 좋은 기분으로 크리스마스를 보낼듯! 구글 SEO 오늘 아침와서 보니 Google Search Console이 우리 서비스의 robots.txt를 인지하기 시작했다. 시간이 답이였나보다. 해당 URL을 올바르게 크롤링할 수 있는지 검사할 수 있는데 Sitemap도 잘 인지하기 시작했다. 아직 sitemap.xml로 인지하는 건 아니고 그냥 크롤링 할 사이트로 인지하고 있긴한데.. 아마 사이트맵 등록도 시간이 조금 지나면 해결되지 않을까 싶다. 바로바로 피드백이 없으니 참 답답하다. 다음주까지 기다려보고 안되면 다시 건드려봐야겠다. ...

2023년 12월 22일 · 3 분 · 배준수

완성한 줄 알았던 것을 진짜 완성하기

Today I Learned 날짜 2023년 12월 21일 목요일 내용 아오 하루종일 되는게 하나도 없다 그냥 또 데모 로그인 테스트서버 까지 확인한 후 실서버로 배포했다. 그런데 실서버에서 또 작동이 안된다… 로딩페이지에서 넘어가지 않는 상황이었다. 콘솔창을 확인해보니 계정 정보는 가져왔지만 그와 연관된 shop을 가져오지 않고 있었다. 해당 계정의 shop이 하나도 없다고 뜨는 상황. 2가지 가설을 세웠다. 설정한 계정의 계정 정보와 shop의 relationship이 DB에서 깨졌다. 실서버에서만 되지 않는 것과 관련하여 로직에 문제가 있다. 1번을 증명하는 방법은, 데모가 아닌 버전으로 로그인 해보면 된다. shop을 못가져오면 당연히 로그인도 안될테니까. 하지만 문제없이 잘 됐다. ...

2023년 12월 21일 · 1 분 · 배준수