
Vue에서의 템플릿은 Vue로 화면을 조작하는 방법을 말한다. 템플릿 문법은 크게 데이터 바인딩과 디렉티브로 나뉜다. 하나씩 알아보도록 하자.데이터 바인딩(Data Binding)은 Vue 인스턴스에서 정의한 속성들을 화면에 표시하는 방법이다. 보통 머시태시({{}})

자바스크립트는 싱글 스레드 기반으로, 한번에 하나의 명령만 수행 가능하지만 여러 라이브러리를 통해 비동기 방식으로 여러 가지 일을 처리할 수 있다는 것이다. 자바스크립트를 비동기 방식으로 처리하는 방법은 크게 3가지가 있다.콜백(Callback): 요청이 끝난 후 실

HTML의 목적은 오직 정보의 구조를 명시적으로 표현하는 것 뿐이다. 따라서 HTML만으로는 사용자와 상호작용하는 것은 불가능하다. 그래서 생겨난 것이 자바스크립트다. 하지만 가장 중요한 점을 짚고 넘어갈 필요가 있다. 바로 “자바스크립트는 HTML을 직접 수정할 수

HTML에 스타일을 입히고 싶으면 CSS로 스타일시트를 작성해서 해당 HTML에 적용하면 된다. 스타일시트 구성은 아래와 같다.제일 먼저 스타일을 적용할 대상을 설정해야 하는데, 이때 선택자(Selector)를 이용하면 된다. <style> 태그 안에 스타일시트를

리플렉션(Reflection)은 실행 중(런타임)에 클래스/메서드/필드 정보에 접근해서, 객체를 만들거나 메서드를 호출하거나 값을 읽고, 바꾸는 기능이다. 즉, 코드를 미리 확정하지 않고, 런타임에 구조를 들여다보고 조작하는 기술이라고 이해하면 된다. 자바가 기본으로

일반적으로 클라이언트는 서버에 필요한 것을 요청하고, 서버는 클라이언트의 요청을 처리한다. 근데 여기서 클라이언트가 서버에 바로 요청하지 않고, 제 3자를 통해서 간접적으로 서버에 요청할 수도 있다. 예를 들어, 내가 직접 장을 보러 마트에 갈 수도 있지만, 다른 누군

🤔 템플릿 메서드 패턴의 필요성 로직 2개를 실행하고 실행 시간을 출력하는 간단한 테스트 코드를 작성해보자. 생각해보면 약간 찝찝하다. 왜냐하면 지금 비즈니스 로직을 실행하는 작업과 걸린 시간을 측정하는 작업이 뒤섞여 있기 때문이다. 좋은 설계란 변하는 것과 변하

데이터 접근 기술에는 아주 다양한 것들이 존재한다. 이를 크게 나누면 SQL Mapper, ORM으로 나뉘는데, SQL Mapper는 개발자가 SQL만 작성하면 해당 SQL의 결과를 객체로 편리하게 매핑해주는 기술로, JDBC를 직접 사용할 때 발생하는 여러가지 중복을

트랜잭션(Transaction)을 직역하면 “거래” 라는 뜻이다. DB에서의 트랜잭션은 “하나의 거래를 안전하게 처리하도록 보장해주는 것” 을 말한다.트랜잭션을 설명할 때 등장하는 흔한 예시인 계좌 이체를 떠올리면 트랜잭션이 왜 필요한지 바로 체감된다. 계좌 이체라는

우테코 불합격 이후, 내가 원하는 기업의 직무에 맞는 프로젝트를 개인적으로 진행하면서 코딩 테스트 대비도 열심히 하던 중, KB 국민은행과 멀티캠퍼스에서 주관하는 IT’s Your Life 7기 모집 공고를 보게 되었다. 원래는 우테코나 소프트웨어 마에스트로, 싸피 이

지금 일련의 서비스 흐름을 정리하자면 아래와 같다.주문 생성 트랜잭션에서 orders 테이블에 주문 정보를 저장한다.같은 트랜잭션 내에서 outbox_events 테이블에 해당 주문 정보에 대한 이벤트도 저장한다.OutboxDispatcher가 outbox_events

고객으로부터 주문 요청이 발생하면 본 서비스의 DB에 주문 정보를 INSERT 할 것이다. 그리고 그 주문 정보에 해당하는 외부 파트너 API를 호출해야 하는데, 이 과정은 둘 다 성공하면 COMMIT, 둘 중 하나라도 실패하면 둘 다 ROLLBACK해야 원자성을 지킬

생각해보면 현실에서 주문 연동을 할 때, 아래와 같은 문제가 자주 생길 수도 있다고 생각했다. 고객이 결제 버튼을 눌렀는데 네트워크가 끊김주문을 요청 받은 그 파트너 서버가 느리거나 불안정함지금 내가 만들 서버에 주문은 저장됐는데 파트너로 주문 정보 전송을 실패함실제

DFS(Depth First Search)는 특정 노드에서 시작해, 인접한 노드 중 방문하지 않은 노드를 따라 가능한 한 깊게 탐색하는 알고리즘이다. 더 이상 진행할 수 없는 지점에 도달하면 이전 지점으로 되돌아가며 다른 경로를 탐색한다. DFS는 방문한 노드를 다시

다익스트라 알고리즘은 방향성을 가지는 그래프에서 최단 거리를 구할 때 사용된다. 가중치가 있는 그래프의 최단 경로를 구하는 문제들은 대부분 다익스트라 알고리즘을 사용한다고 보면 된다. 다익스트라 알고리즘은 너비 우선 탐색(BFS)과 유사한 형태를 가진 알고리즘으로, 시

원래 DB와의 커넥션을 만들 때는 DB 드라이버가 TCP/IP 연결을 만들고, DB 인증 및 권한을 확인해야 했다. 또 세션을 생성하고, 커넥션 객체를 다시 애플리케이션 로직에 반환하는 등 매우 복잡하고 번거로운 과정을 거쳐야 했다.그래서 미리 커넥션을 여러 개 만들어

보통 애플리케이션을 개발할 때 데이터를 데이터베이스에 저장한다. 클라이언트가 데이터베이스에 데이터를 저장하거나 꺼내 오기 위해서는 아래와 같은 과정을 거친다.여기서 애플리케이션 서버와 데이터베이스 사이의 상호작용에 대해 집중할 필요가 있다. 먼저 애플리케이션은 TCP/

객체지향 설계의 기반을 이루는 2가지 원칙에 대해 알아보자. 그 전에 먼저 설계(Design) 란 정확히 무엇이고, 설계의 목적이 무엇인지에 대해 짚고 넘어가야 한다.설계는 코드를 배치하는 방식이다. 영화 예매 시스템을 구현했을 때, 처음에는 데이터를 구현한 코드와 프

일반적으로 프로그램은 데이터와 이 데이터를 사용하는 알고리즘 또는 프로세스의 조합으로 정의한다. 절차적인 방식은 프로그램을 구성하는 데이터와 프로세스를 개별적인 모듈로 분류해서 구현하는 방식을 말하는데, 보통 데이터를 먼저 정의하고 데이터를 사용하는 프로세스를 나중에

도메인이란, 사용자가 프로그램을 사용하는 주제 영역, 또는 사용자가 프로그램을 사용해서 해결하고 싶은 문제들의 집합을 말한다. 좀 더 풀어서 설명하자면, 도메인을 소프트웨어로 구현해야 하는 요구 사항의 범위로 생각하면 된다. 소프트웨어를 구현할 때 모든 요구 사항을 코