목록분류 전체보기 (198)
밤빵's 개발일지
🤓내부 DB와 외부 DB, 그리고 데이터 동기화나는 내부 DB와 외부 DB의 개념, 그리고 데이터 동기화(Data Synchronization)에 대해 고민할 기회가 있었다. 이 용어들은 많이 들어봤지만, 실제로 어떤 차이가 있는지 명확히 이해하지 못했기 때문에 이번 개발일지를 통해 그 차이와 데이터 동기화의 중요성을 정리하고자 했다. ▶내부 DB와 외부 DB먼저 내부 DB와 외부 DB의 차이부터 알아보았다. 내부 DB와 외부 DB는 그 용도와 위치에 따라 구분되며, 애플리케이션의 데이터 관리 방식에 큰 영향을 미친다. ▶내부 DB (Internal DB)내부 DB는 애플리케이션이 실행되는 서버 혹은 로컬 환경에서 직접 접근할 수 있는 데이터베이스를 의미한다. 보통 애플리케이션이 실행되는 환경과 가까운..
🫨리플렉션(Reflection)결제 기능을 구현하는 과정에서 포트원(Port One)과 연동하면서 처음에는 레스트템플릿(RestTemplate)을 사용하고있다.하지만 포트원라이브러리를 이용하기위해 아이엠포트(Iamport) 클라이언트를 사용하려고 코드 수정을 시도하면서 몇 가지 문제가 발생했다. 아이엠포트의 Prepare 객체에서 데이터를 가져와야 했지만, 그 데이터가 읽기 전용(read-only) 필드로 설정되어 있어 getAmount()와 같은 getter 메서드를 사용할 수 없었다. 이 문제를 해결하기 위해 리플렉션(Reflection)이라는 방법을 알게되었는데... 아무리 봐도 이 방법은 쓰고 싶지가 않다😢 ▶리플렉션이란?리플렉션(Reflection)은 자바에서 클래스, 메서드, 필드 등의 정..
🤓웹(Web)과 애플리케이션(Application)의 차이나는 웹과 애플리케이션의 차이에 대해 잘 모른다. 둘 다 소프트웨어와 관련이 있다는 점은 알았지만, 구체적으로 무엇이 다른지 이해하지 못하기 때문에 오늘은 딴짓 겸 개발일지 주제로 정했다. ▶ 웹(Web)이란?웹(Web)은 인터넷을 통해 브라우저에서 실행되는 소프트웨어나 서비스를 의미한다. 웹 페이지, 웹 애플리케이션 등 다양한 형태로 존재하며, 보통 브라우저(Chrome 등)를 통해 접근한다. 웹의 핵심은 인터넷 연결만 있으면 어디서든 접근할 수 있다는 점이다. 웹은 일반적으로 클라이언트-서버 아키텍처를 사용한다. 클라이언트는 사용자가 웹 브라우저에서 웹사이트나 서비스를 요청하고, 서버는 그 요청에 대한 데이터를 처리하고 응답한다. 웹에서는 ..
🤓리젝(Reject)개발을 공부하면서 처음으로 '리젝(Reject)'이라는 단어를 접하게 되었다. 이 단어가 무엇을 의미하는지, 어떤 상황에서 사용하는지 잘 몰랐기 때문에 이번 기회에 리젝의 개념을 공부하고 기록하기로 했다. 리젝은 다양한 개발 환경에서 사용되지만, 특히 요청이나 작업이 거부되거나 실패할 때 주로 언급된다. ▶리젝이란?리젝(Reject)은 "거부" 또는 "거절"을 의미하는 단어로, 개발 분야에서는 특정 요청이나 작업이 실패하거나 처리되지 않았음을 나타낸다. 주로 클라이언트와 서버 간의 통신에서, 클라이언트가 서버에 특정 요청을 보냈지만, 그 요청이 승인되지 않거나 처리되지 않을 때 사용된다. 예를 들어, 사용자가 잘못된 데이터를 입력했거나, 서버에서 처리할 수 없는 요청을 보냈을 때 서..
🤓스택 트레이스(Stack Trace)나는 개발 공부를 시작한 지 얼마 되지 않았고, 이번에 스택 트레이스(Stack Trace)라는 용어를 처음 접하게 되었다. 처음에는 생소했지만, 스택 트레이스는 오류가 발생했을 때 그 원인을 추적하는 데 중요한 역할을 한다는 것을 알게됐다. 이번 개발일지를 통해 스택 트레이스가 무엇인지, 왜 중요한지, 그리고 스택 트레이스를 통해 어떻게 문제를 해결할 수 있는지 정리해보려고한다. ▶스택 트레이스란?스택 트레이스는 프로그램에서 예외(Exception)나 오류(Error)가 발생했을 때, 그 오류가 어디서 발생했는지에 대한 정보를 단계별로 보여주는 일종의 로그로 오류의 원인을 추적할 수 있다. 스택 트레이스는 일반적으로 예외가 발생한 메서드 호출의 흐름을 보여주고,..
포스트맨 테스트를 하면서 처음 겪는 에러였다. 실행 돌리고 콘솔에서 가끔 봤던 단어였는데 이 에러를 겪고나서 다른 사람들한테 보여주려니 발생이 되지 않고있다가 곧 다시 발생할거라고 기술매니저님이 말씀하셨는데 정말 다시 발생해버렸다. 와 히카리풀이다!! 하고 개발일지 소재 생겼다고 좋아하다가 고치느라 많은 시간을 소모하고, 어찌어찌 사라졌다. 결제 기능을 구현하면서 볼 만한 에러도 아닌데 이런걸 다 보다니... 알아가는게 참 많은 시기구나...! HikariCP는 스프링 부트에서 데이터베이스 연결을 관리하는 데 자주 사용하는 고성능 JDBC 커넥션 풀이다. 하지만... 잘못된 설정이나 특정 상황에서 연결 풀의 문제가 발생할 수 있기때문에 에러의 원인과 해결 방안을 정리해보았다! ▶ HIkariCP 에..
도메인 계층은 애플리케이션에서 중요한 개념 중 하나이고, 비즈니스 로직을 처리하는 핵심 역할을 한다. 하지만 이 계층이 정확히 무엇을 하는지, 왜 중요한지 잘 이해하지 못했기 때문에 이번 개발일지에서 도메인 계층을 공부하고 기록하기로 했다. ▶도메인 계층이란?도메인 계층(Domain Layer)은 소프트웨어 아키텍처에서 비즈니스 로직을 담당하는 계층이다. 비즈니스 로직이란, 애플리케이션이 해결하려는 문제와 관련된 규칙과 절차들을 말한다. 예를 들어, 쇼핑몰 애플리케이션에서는 상품 주문, 결제, 환불 등이 비즈니스 로직에 속한다. 도메인 계층은 이러한 비즈니스 규칙을 구현하고 유지하는 역할을 한다.도메인 계층은 종종 애플리케이션의 다른 계층과 분리되어, 비즈니스 로직만을 집중적으로 처리할 수 있게 설계된다..
N+1문제를 해결하면서 기술매니저님의 조언에 따라 OUTER JOIN에 대해 알아보는데.... 내가 해결한 방법이 아우터조인이였다. INNER JOIN으로 해결한게 아니라 LEFT JOIN으로 그냥 해결했다! 라고 생각한게 바보였다. 그래서 오늘은 INNER JOIN과 OUTER JOIN을 비교하는 주제로 개발일지를 작성하기로 했다. SQL에서 가장 자주 사용되는 두 가지 조인 방식인 INNER JOIN과 OUTER JOIN에 대한 정리! ▶ INNER JOININNER JOIN은 두 테이블 간의 연관된 데이터를 가져올 때 사용한다. 이 조인은 두 테이블 모두에 해당하는 값이 있을 때만 결과에 포함되며, 일치하지 않는 데이터는 결과에서 제외된다. 간단히 말해, 교집합과 같은 개념이다. → 장점:필요하지..
나는 백엔드 개발을 공부하는 뉴비... 코틀린이 매력적인 언어라고 들어서 흥미가 생겼다. 오늘 개발일지에서는 코틀린의 특징과 장점, 그리고 간단한 예시 코드를 통해 이 언어에 대해 알아보고싶었다! ▶코틀린(kotlin)코틀린(kotlin)은 2011년 JetBrains에서 처음 발표한 프로그래밍 언어로, 주로 JVM(Java Virtual Machine)에서 동작하도록 설계되었다. 자바와 100% 호환되기 때문에 기존 자바 코드베이스와의 통합이 용이하며, 자바에서 불편하던 부분들을 개선한 언어로 주목받고 있다. 특히 구글이 코틀린을 안드로이드 공식 언어로 채택하면서 더 큰 인기를 얻게 되었다. ▶코틀린의 주요 특징→ 간결한 문법:자바에 비해 코틀린은 훨씬 간결한 문법을 제공한다. 불필요한 코드 작성을 ..
개발 공부를 하면서 프로그래밍 언어의 종류가 정말 많다는 사실을 알게 되었다. Java, Python, C++, JavaScript, Ruby, Go, Kotlin 등 너무 많은 언어들이 있고, 각 언어가 언제 사용되는지, 왜 이렇게 다양한 언어가 존재하는지 궁금해졌다. 이번 개발일지에서는 왜 이렇게 많은 프로그래밍 언어가 존재하는지에 대해 조사해보고 정리해보았다.😵💫프로그래밍 언어가 많은 이유▶문제 해결 방식의 차이프로그래밍 언어는 특정한 문제를 해결하기 위해 설계된 도구이다. 각각의 언어는 특정한 문제를 더 효율적으로 해결하기 위한 도구와 개념을 제공한다. 예를 들어, C 언어는 하드웨어 제어와 같은 시스템 프로그래밍에 강점을 가지고 있지만, JavaScript는 웹 브라우저 환경에서의 상호작용..