본문 바로가기

분류 전체보기58

자바 디자인 패턴(Design Pattern) 개요개발자로서 자바로 코딩을 하다 보면, 효율적이고 유지보수하기 쉬운 코드를 작성하는 것이 중요하다. 그 과정에서 자주 등장하는 것이 디자인 패턴(Design Pattern)이다. 처음에는 디자인 패턴이란 용어가 생소하게 느껴질 수 있지만, 개발 환경에서 마주치는 반복적인 문제들을 해결하는 데 큰 도움이 된다. 이번 글에서는 자바의 디자인 패턴에 대한 기본 개념을 쉽게 풀어 설명하려 한다. 디자인 패턴을 이해하고 나면 코드 작성과 구조화에 훨씬 자신감이 생길 것이다.  디자인 패턴이란 무엇인가? 디자인 패턴은 소프트웨어 개발에서 반복적으로 발생하는 문제를 해결하기 위한 일반화된 해결책이다. 디자인 패턴을 사용하면 코드의 재사용성이 높아지고, 유지보수가 쉬워지며, 다른 개발자와 협업할 때도 일관성을 유지할.. 2024. 10. 6.
자바스크립트의 클로저(Closure)와 스코프(Scope) 아주 쉽게 이해하기 개요최근에 자바스크립트를 배우는 친구와 대화를 나누면서 클로저(Closure)와 스코프(Scope)에 대한 질문을 받았다. 많은 개발자들이 이 두 개념을 처음 접했을 때 혼란스러워하는 것을 보았다. 그래서 이번 글에서는 자바스크립트의 클로저와 스코프를 쉽게 이해할 수 있도록 설명해 보려고 한다. 스코프란 무엇인가?스코프는 변수의 유효 범위를 정의하는 개념이다. 자바스크립트에서는 전역 스코프와 지역 스코프가 있다. 전역 스코프는 코드의 어디에서나 접근 가능한 반면, 지역 스코프는 특정 함수 내에서만 접근할 수 있다. 예를 들어, 아래와 같은 코드를 보자.let globalVar = "나는 전역 변수다!";function testScope() { let localVar = "나는 지역 변수다!"; .. 2024. 10. 5.
Screenlog.js 로그 쉽게 확인하기 (모바일 버전 작업) 개요웹 프론트엔드 개발을 하다보면 ajax를 통해 페이지 일부를 갱신하는 작업을 많이 하게 된다. 이 때 서버에서 받아온 데이터가 개발자의 의도와 달라 화면에 제대로 뿌려지지 않거나 하는등의 현상을 쉽게 접해볼 수 있는데, 개발자는 이러한 경우 가장 쉽게 이슈를 처리할 수 있는 방법으로 console.log와 개발자 도구를 사용하곤 한다. 이 외에도 화면상에서 클라이언트와 몇 번의 인터렉션을 거친 뒤 특정 api를 호출하기 전 validation을 한다던지 등의 작업을 할때에도 console.log를 사용하여 쉽게 값을 확인할 수 있는데, 문제는 이 값을 확인하려면 개발자도구를 열어야 한다는 점에서 발생한다. 모바일 vs PC현재 내가 회사에서 작업하고 있는 서비스들은 공통적으로 PC 웹 화면 뿐만 아니.. 2024. 10. 4.
결제 동시성 이슈 해결 - 분산락과 Redisson 개요회사 차세대 프로젝트에서 발송 요청 시 가결제 동시성 이슈로 인한 사용자 가결제 금액 - 잔액간 불일치 이슈가 발생했다. 발생한 가결제 이슈 프로세스를 정리하면 아래와 같다. 사용자가 2건의 60원짜리 가결제 요청P1: 가결제 금액 조회 ⇒ 0원P2: 가결제 금액 조회 ⇒ 0원P1: 가결제 처리 후 commit ⇒ 사용자 가결제 금액 60원P2: 가결제 처리 후 commit ⇒ 사용자 가결제 금액 120원보유 금액 100원 이 되어 유저 잔액(-20원) 조회 시 오류 발생위 이슈는 공유 자원인 DB에 동시에 여러 프로세스가 접근하여 값을 수정하다보니 발생한 동시성 이슈인데, 해당 이슈 담당자는 이 이슈를 Redis를 활용한 분산락을 통하여 해결하였다. 이번 글에서는 DB 접근 동시성 이슈를 해결하기 .. 2024. 10. 3.