✍ Today I Learned
항해99 입학시험
입학시험은 미리 예고했던 대로 웹개발 종합반 강의 정도의 난이도였다.
웹개발 종합반 4주차에 진행했던 “화성 땅 사기” 프로젝트에 가격 표시 기능을 추가하는 것이 문제로 나왔다.
DB에서 받아온 "n평" 중 '평'을 자르고 정수로 타입 변환한 뒤, 500원을 곱하여 빠르게 제출하였다.
다른 분들의 풀이 방식을 들어보니 크게 2가지로 나뉘었다.
- 프론트단에서 연산하여 출력
- 가격을 DB에 저장하고, 서버에서 불러온 값을 출력
나는 1번의 방식을 택했다고 볼 수 있는데, 어떤 방식이 더 효율적 일지 궁금해졌다.
효율성을 고민할 땐 극단적인 예시를 떠올려야 한다.
'list의 개수가 1억 개라면?'
무려 1억 번의 연산을 리로딩될 때마다 해야 한다.
결론적으로 2번의 방식이 더 효율적이라고 생각한다.
이미 제출은 했지만, DB에 저장하는 방식으로 다시 구현해보았다.
기존에 "n평"으로 받던 select의 value를 "n"으로 수정하고,
서버로 저장할 데이터를 보낼 때 가격을 연산하여 함께 보내 주었다.
function save_order() {
const name = document.getElementById('name').value;
const address = document.getElementById('address').value;
const size = document.getElementById('size').value;
let price = parseInt(size) * 500; // 가격 정보 함께 저장하기
$.ajax({
type: 'POST',
url: '/mars',
data: {name_give: name, address_give: address, size_give: size, price_give: price},
success: function (response) {
alert(response['msg'])
window.location.reload();
}
});
}
결과는 기분 좋게 합격!
항상 어떤 식의 코드가 더 효율적 일지 고민하는 습관을 가지자.
'📝 TIL' 카테고리의 다른 글
[TIL] Java 참조 타입, 메모리 사용 영역, String, 배열 (4) | 2022.11.11 |
---|---|
[TIL] Java 조건문, 반복문, break, continue (0) | 2022.11.10 |
[TIL] Java 연산자의 종류, 우선순위, 타입 변환 (2) | 2022.11.08 |
[TIL] Java 개발 환경 구축, 변수와 타입 (0) | 2022.11.07 |
[TIL] Python 문자열 제거, pymongo 역정렬, MongoDB에 id 부여 (0) | 2022.11.04 |