[Functional Programming]
✅ 쿠폰독 서비스 구현, part: 1원민관님 친구 추천 수를 확인해 보자는 것이다. 친구가 없기로 유명하기에 good 쿠폰을 받을 가능성이 높다. 객체 형식의 데이터로부터 문자열로 이루어진 쿠폰 랭크를 리턴하는 단순한 구조의 함수이다. 핵심은, 해당 로직은 '데이터'
✅ 쿠폰독 서비스 구현, part: 1

원민관님 친구 추천 수를 확인해 보자는 것이다. 친구가 없기로 유명하기에 good 쿠폰을 받을 가능성이 높다. 객체 형식의 데이터로부터 문자열로 이루어진 쿠폰 랭크를 리턴하는 단순한 구조의 함수이다. 핵심은, 해당 로직은 '데이터'와 '계산'으로만 이루어졌다는 것이다.
뻥 안치고 우리 할머니도 이해할 수 있는 파트이기에 가볍게 넘어간다.
✅ 쿠폰독 서비스 구현, part: 2

쿠폰 목록이 몇 개 있다고 가정하자. 만 원 할인(best), 오천 원 할인(good), 3회 무료(best), 1회 무료(good) 등.
한마디로, rank에 맞는 쿠폰 목록을 꺼내오자는 것이다. coupons는 배열의 데이터 구조일 것이고, 전체 쿠폰을 톺아보다가 내가 원하는 rank와 일치하는 쿠폰 요소가 있으면 빈 배열인 ret에 추가하자는 로직이다.
쉽다 쉬워, 오늘부터 나도 함수형 프로그래머?!
✅ 쿠폰독 서비스 구현, part: 3

✍️ 구독자가 받을 이메일을 계획하는 함수 - emailForSubscriber
subCouponRank 함수에 원민관을 전달하면 rank는 good 일 것이다. 왜냐면 처음에 친구가 없을 것이라고 얘기했기에 rec_count가 10미만일 것이기 때문이다. 따라서 emailForSubscriber 함수는, else 문에서 작성한 이메일 데이터를 반환하게 될 것이다.
✍️ 보낼 이메일 목록을 준비하는 함수 - emailForSubscriber's'
일단 구독자 배열을 인자로 설정한다. 배열에 원민관, 홍길동, 브라이언 이런 식으로 있다고 치자고. 동시에 subscriber라는 변수에 해당 인자의 데이터를 인덱싱한다. for 문에서 선언한 subscriber 변수에 가장 처음 원민관이 들어갈 것이다.
위에서 만든 emailForSubscriber에 구독자를 ~~한 마리씩~~ 한 분씩 대입해 본다. 참고로 selectCouponsByRank 함수를 돌리면 랭크에 맞는 쿠폰 목록이 반환된다. 다시 말하자면 ``var email = emailForSubscriber(원민관, 굿쿠폰 목록, 베스트 쿠폰 목록)`` 이런 상황이다. 길동이랑 브라이언 형님에 대한 이메일도 만들어질 테니, 모든 이메일을 이메일s라는 배열에 넣어주겠다는 것이다.
✍️ 이메일을 실제로 전송하는 함수 - sendIssue
1. DB에서 모든 쿠폰 정보를 가져온다. 2. 가져온 쿠폰에서 good 쿠폰을 선택한다. 3. 가져온 쿠폰에서 best 쿠폰을 선택한다. 4. DB에서 모든 구독자 정보를 가져온다. 5. emailsForSubscribers(구독자 목록, good 쿠폰 목록, best 쿠폰 목록) -> emailForSubscriber(원민관, good 쿠폰 목록, best 쿠폰 목록) -> emails 배열 매핑하며 이메일 보내기 반복
✅ 쿠폰독 서비스 구현, part: Advanced

깐깐징어 사수 등장!

네~ 구독자 정보 한 번에 안 가져오면 그만이죠? 0페이지, 1페이지, 2페이지... 페이지마다 구독자 정보를 20명씩 가져온다고 가정하면 호들갑 떨 일 없죠?
✅ 회고

필자가 심신미약 시절 제주도에서 직접 촬영한 날씨 알려주는 돌멩이다. 적중률 100%는 무의미하다는 것을 잘 보여주는 사진이다. 뻔한 말은 하지 않는 것이 좋고, 뻔한 길은 애써 무시해 보는 것도 괜찮다. 누군가가 젊은 날의 치기라고 비난할지라도, 당연히 뻔해질 필요는 없다. 어차피 고민하고 한 말이 아닐 가능성이 높으니까. 100%는 아무것도 고민하지 않겠다는 뜻과 동일하다.
More to read
Amazon VPC Architecture 이해하기
새로운 프로젝트를 기획하며, 개발에서 무엇을 가장 먼저 고민해야 하는지 다시 돌아보게 되었습니다.한때는 프론트엔드가 모든 설계의 출발점이라고 믿었습니다. 유저가 무엇을 보고, 어떤 흐름에서 머무르고 이탈하는지에 대한 이해 없이 서비스를 만든다는 건 불가능하다고 생각했기
'원사이트'프론트엔드 관점으로 알고리즘 이해하기
오랜만에 방법론에 관한 글을 쓰게 되었습니다. 최근 상황은 이렇습니다. SSAFY에서는 하루에 엄청난 양의 알고리즘 문제들을 과제로 수행하게 됩니다. 그 과정에서, '구현력'이 매우 떨어진다는 생각이 들었습니다. 완전히 어려운 문제라면 '아쉬움'이라는 감정조차 느끼지
SubnetVPC 설계의 시작: IP와 Subnet
반복되는 루틴 속에서 얻은 안정감을 발판 삼아, 이제는 기술적 스펙트럼을 넓히기 위한 개인 프로젝트에 착수하고자 합니다.이번 프로젝트의 목표는 단순한 포트폴리오 구축을 넘어, 실제 서비스 수준의 블로그 시스템 구현과 다국어 처리 적용 등 실무에 가까운 역량을 한 단계