일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- cypressBDD
- 시스템설계
- react-ga
- git commit merge
- FirebaseAnalytics
- 가상면접으로대규모시스템
- awss3
- 헤드퍼스트전략패턴
- 리팩터링2판테스트
- cypress React
- file not found Error
- 가상면접3장
- 전략패턴
- formik react-query submitting not working
- git commit 협업
- s3이미지다운로드됨
- 시스템설계면접
- git squash
- 시스템설계면접예시
- 테스트코드책
- 리액트구글애널리틱스
- 시스템설계면접팁
- formik submitting not working
- react
- gitsquash
- 가상면접2장
- 리팩토링2판4장
- Git commit 합치기
- 시스템설계방법
- 디자인패턴
- Today
- Total
목록전체 글 (268)
mingg IT
4장 액션에서 계산 빼내기 함수형 프로그램 적용 전 장바구니 예시 var shopping_cart = []; var shopping_cart_total = 0; // 장바구니 카트에 추가 function add_item_to_cart(name, price) { shopping_cart.push({ name: name, price: price, }); calc_cart_total(); } // 장바구니 총액 계산 function calc_cart_total() { shopping_cart_total = 0; for (var i = 0; i < shopping_cart.length; i++) { var item = shopping_cart[i]; shopping_cart_total += item.price;..
상황 검색 조건등으로 인해 동적 쿼리를 생성할 일이 생겨서 queryDSL을 적용해 보려고 한다. build.gradle.kt import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.7.6" id("io.spring.dependency-management") version "1.1.3" kotlin("jvm") version "1.8.22" kotlin("plugin.spring") version "1.8.22" kotlin("plugin.jpa") version "1.8.22" // 추가 kotlin("kapt") version "1.9.10" idea } java {..
상황 임시비밀번호를 메일로 전송해주는 서비스를 만들고 있었다. (JavaMailSender를 이용) 네이버 이메일을 이용했고, 네이버 > 환경설정> SMTP 권한을 설정해주었는데도 해당 에러가 발생했다. 해결 방안 mailSender에 setFrom을 추가하여 보내는 이메일을 추가해주었다. private val mailSender: JavaMailSender @Value("\${spring.mail.username}") private lateinit var fromEmail: String private fun _sendEmail(email: String, temporaryPassword: String) { val message = mailSender.createMimeMessage() val helper..
상황 Spring Initializer로 java 17버전을 선택하고 spring boot 프로젝트를 Run 했는데 해당 에러를 발생하면서 실패했다. 분명히 이전에 초기 세팅할때도 겪었던 문제라서 기록해 두려고 한다. 해결방안 1. File > Project Structure SDK 버전을 17로 바꾸어 준다. 2. Setting > Build, Execution, Deployment > Build Tools > Gradle InteliJ IDEA로 설정해주고, JVM을 17버전을 선택한다. 빌드 성공 두번째 겪은 문제라서 설정하는 메뉴이름이 기억이안나서 작성해두었다. 초기 세팅이 귀찮지만.. 시작이 반이니 화이팅!
상황 갑자기 결제 관련된 부분에서 간헐적으로 500 에러가 뜨기 시작했다. 분명 추가로 배포한 사항도 없는데 무수한 에러를 뱉어내고 있었다. 에러 로그는 결제가 실패했다고만 뜨고있어서, 결제가 실패한 시간대의 로그를 살펴보니 아래와 같은 에러를 뱉어냈다. 구글링을 해보아도 특별히 해결 방법이 많이 나오지 않는다. Redis 버전이 문제가 있을 수 있다고 이야기 한다. 추측 결제시 마이그레이션 된 유무를 파악하기위해 Redis를 쓰고 있었다. 해당 시점은 마이그레이션이 끝나고 난 이후기 때문에 우선 Redis를 사용하고있는 모든 로직을 걷어내기 시작했다. 원인 aws > 샤드 및 노드가 1개 추가되어 있었다. aws > 이벤트 또한 수정되어 있었다. 타 회사와 협업을 하면서 aws 계정을 공유하는데 수정 ..
상황 postgreSQL을 localhost만 사용하다가 rds로 endPoint를 옮기고 EC2에 서버를 띄웠다. 스프링 부트 프로젝트에선 datasource url등을 바꾸고 실행했을때 문제가 없었다. 허나 EC2 인스턴스 에러로그가 발생했다. (아래 첨부) org.postgresql.util.psqlexception: the connection attempt failed 를 포함한 무수히 많은 에러를 뱉어냄 원인 로그를 자세히 읽어보면 DB에 접근을 못하고 있다함 RDS 인바운드 규칙에 내가 띄운 EC2의 퍼블릭 IP가 추가되어있지 않아서임 해결 RDS의 인바운드 규칙에 EC2의 퍼블릭 ip 혹은 보안그룹 ID를 추가해서 접근이 가능하도록 수정함 아래 블로그에 잘 설명되어있어서 참고함 https:/..
액션 실행 시점과 횟수에 의존 부수 효과, 부수 효과가 있는 함수, 순수하지 않은 함수 ex) 이메일 보내기, 데이터베이스 읽기 계산 입력으로 출력을 계산 순수함수, 수학 함수 ex) 최댓값 찾기, 이메일 주소가 올바른지 확인하기 데이터 이벤트에 대한 사실 ex) 사용자가 입력한 값, API로 읽은 값 액션, 계산, 데이터를 구분 하는 시점 문제에 대해 생각할 때 코딩할 때 최대한 액션에서 계산을 빼냄 계산에서는 데이터를 분리할 수 있는지 검토 액션이 계산이 될 수 있는지, 계산은 데이터가 될 수 있는지 고민 코드를 읽을 때 액션, 계산, 데이터 중 어떤 것에 속하는지 살펴보기 액션은 시간에 의존하기 때문에 더욱 조심히 액션, 계산, 데이터 구분 예시 전부다 액션임. 각 플로우를 좀 더 세분화 해보자 냉..
현실에서의 함수형 사고 토니의 피자가게 예시 일급함수: 함수를 인자로 받는 함수 액션 호출 횟수와 시점에 의존 하는 것 ex) 반죽 펴기, 피자 배달, 재료 주문 계산 어떤 것을 결정하거나 계획하는 것 계산은 아무 때나 사용해도 주방이 엉망진창이 될 걱정이 없음 ex) 조리법에 나온 것을 두배로 만들기, 쇼핑 목록 결정 데이터 변경 불가능한 데이터 ex) 고객 주문, 영수증, 조리법 계층형 설계 상위로 갈 수록 자주 변경됨 아래로 갈 수록 의존성이 많아 바꾸기 어렵고, 자주 바꾸지 않음 일급 추상 타임라인 다이어그램 로봇 한대가 피자를 만들기위해 진행되는 액션 액션은 실행 시점에 의존하기 때문에 실행 순서가 중요함 분산 시스템을 타임라인으로 시각화하기 로봇 3대를 동시에 이용해서 피자를 만들면 더 빠를 ..