목록분류 전체보기 (12)
코더

-배경-쿠폰기능에서 선착순쿠폰이 끝나면 다른 유저가 조회를 못하도록 기능을 구현했다. -문제점-그런데 이렇게 하려다 보니 couponUsed = false가 true가 되면 조회가 안되도록 구현하였는데 이 couponUsed가 UserCoupon객체에 존재하게 되어 public List findRestaurantCoupons(Long restaurantId) { List coupons = couponRepository.findByRestaurantId(restaurantId);CouponResponse의 응답값을 받는 Coupon으로는 couponUsed를 사용 할 수 없게 되었다.그래서 생각한것이 하나의 usedCoupon2(?) 이런식으로 하나 더 만들어서 Coupon 엔티티에 넣어주자는..

-사용배경-쿠폰기능에 대한 토의를 하던도중 유저가 다운로드 받은 쿠폰 리스트는 가게에 방문할 때 마다 거의 사용을 한다고 가정을 하고 만들었기 때문에 자주 정해져있는 유저의 쿠폰리스트의 db를 조회할 것 이라 가정을해 cache를 적용해 주었다. -코드- -적용 전/후-위의 그래프를 보면 확연하게 차이가 나는 모습을 확인 할 수 있었다.cache를 적용하기 전에는 처음 조회 당시에는 423ms로 조회가 빠르게 되었음에도 불구하고 시도 횟수가 늘어 날 수록 오히려 평균값이 중가하였고cache를 적용한 후에는 처음 조회 당시에 484ms로 조회가 비교적 느리게 되었음에도 시도 횟수가 늘어 날 수록 오히려 응답시간이 줄어들어 5번만의 시도의 평균값만 비교해봐도( 152.4ms → 122ms )평균값이 줄어드는..
typescript 쓰는 이유 -javascript(동적언어) : 런타임에 타입결정/오류발견-java,typescipt(정적언어) : 컴파일 타임에 타입결정/오류발견function showItems(arr:number[]) {arr.foreach((item) => {console.log(item);});}showItems([1,2,3]]);와 같이 사전에 오류를 발견 할 수 있다. number,stringlet a : number[] = [1,2,3];let a : Array = [1,2,3];let a2 : string[] = [1,2,3];let a2=Array = [1,2,3]; tuple -배열과 비슷한 모형인데 index별로 타입이 다를 때 이용let b : [string, number];b =..

1. usestates와 props -일반적인 javascript 사용-DOCTYPE html>html>body>span> total clicks : 0 span>button id="siu">click mebutton>body>script>let counter = 0;const buttons = document.getElementById("siu");const span = document.querySelector("span");function clickable() {console.log("clickkkk");counter = counter + 1;span.innerText = `total clicks : ${counter}`;}buttons.addEventListener("click",clickable)..

--------------------------------react 기본---------------------------------------------- react 설치npx create-react-app voca(npx => npm에 올라가있는 패키지를 바로 실행시켜준다) npm start : 프로젝트 시작(띄운다) (터미널에서)ctrl + c => 프로젝트를 내린다. document.getElementById('root'); => index.html의 에 을 렌더링시켜준다. jsx => javascript내부에 html처럼 작성하는 것 eject => 내부 설정파일을 꺼내는 역할을 한다.(웹페이지나,바벨설정 바꿀때 사용가능) HMR => 개발 중에 모듈의 변경 사항을 즉시 적용 {} => 중괄호로 ..

1.이벤트 루프호출스택 호출스택은 동기코드를 담당한다이벤트루프는 비동기코드를 담당한다.테스트 큐는 실행돼야 할 콜백 함수(나중에 호출되는 함수)들이 대기하는 곳이다.백그라운드는 타이머,이벤트 리스너 저장하는 공간이다. chrome브라우저는 소스코드가 실행되는 순간에 하나의 함수가 실행된다고 보고 anonymous라는 함수로 표기한다.( 호출스택은 역순으로 출력되기 때문에 실행을 하면 anonymoous가 가장 나중에 표시되는 것을 알 수있다.) 여기서 발생하는 문제는 2,5가 같은색이면 뒤집어 지고 8,9가 같은 색이면 뒤집어 진다고 생각 할 수 있는데 그렇지 않다.( 그 이유는 2,5,8,9가 이미 클릭을 통해 테스트 큐로 넘어간 상태이기 때문에 순차적으로 일을처리 하는 호출스택의 입장에서는 2,5,..

맥북 사용시zsh: no such file or directory 이러한 에러가 발생해chmod +x /Users/qlgh2gh/Desktop 로 권한을 넣어주니 해결이되었다/desktop mkdir momentum 명령어로 파일생성 후 visual studio code를 이용해 만들었다 기본적인 문법 배열array = [mon,tue,wed];ex). console.log(A + B)' == const c = [A, B]; console.log(c)와 같다.player.name 은 player[name]으로 사용이 가능하다 const age = parseInt(prompt("how old are you?"); ==> age가 number인지 아닌지 확인해준다 if(isNaN(age)) { con..
1.$(rspx.computer)와 $(rspx[computer])의 차이는? $(rspx.computer)는 "computer"라는 속성에 직접 접근하는 것을 의미한다. 즉, "rspx"라는 객체나 클래스의 "computer" 속성을 참조합니다. 이 문법은 객체지향 프로그래밍에서 자주 사용되는 접근 방식이다.반면, $(rspx[computer])는 "computer"라는 변수를 동적으로 평가하여 해당 변수에 저장된 값을 참조한다. 이 문법은 변수의 이름을 동적으로 결정하고 싶을 때 사용할 수 있다. 예를 들어, "computer"라는 문자열이 변수에 저장되어 있고, 해당 변수의 값을 참조하고자 할 때 사용될 수 있다.간단히 말하면, $(rspx.computer)는 "computer"라는 속성을 직접 접..