디자인 패턴 - 템플릿 콜백 패턴(Template Callback Pattern)
·
Design Pattern
템플릿 콜백 패턴이란?템플릿 콜백 패턴은 전략 패턴의 변형으로, 개발의 유연성과 재사용성을 높이는 디자인 패턴이다. 특히, Java에서 비동기 프로그래밍이나 이벤트 기반 프로그래밍을 구현할 때 유용하게 사용된다.Spring의 JdbcTemplate, RedisTemplate, TransactionTemplate 등에서 템플릿 콜백 패턴이 사용되고 있다.  특징변하지 않는 기능(템플릿)과 변하는 기능(콜백)을 분리한다.전략 패턴과 유사하지만 콜백을 템플릿 메서드의 파라미터로 전달한다.콜백은 주로 단일 메소드를 가진 인터페이스(함수형 인터페이스)를 사용한다.익명 클래스나 람다 표현식을 사용해서 콜백을 전달할 수 있다.  패턴 흐름Client가 템플릿 메서드를 호출하여 콜백을 전달한다.템플릿 메서드는 정해진 ..
Git - 깃허브 누락된 잔디 한 번에 복구하기 (feat. 잃어버린 잔디를 찾아서)
·
Git
개요열심히 개발해서 푸쉬를 했는데 잔디가 안심어져있다면 얼마나 화가 날까?바로 내가 그랬다. 몇개월 전 진행했던 프로젝트의 모든 커밋의 잔디가 안심어졌던걸 뒤늦게 발견했던 것이다. 원인잔디가 누락되는 원인으로는 여러가지가 있겠지만, 나같은 경우는 제일 흔하게 보이는 유형인 Github에 등록된 이메일 계정과 커밋할 때의 로컬 이메일 계정일 불일치해서 발생했던 문제였다.커밋이 잔디로 심어지기 위해서는 커밋에 포함된 유저 정보인 이메일이 Github에 연결되어 있어야 한다. Github에 등록되어 있는 이메일과 다르면 잔디로 심어지지 않는다.나는 개인 작업도 하고 재택도 했기 때문에 토이 프로젝트를 하는 동안 회사 계정으로 사용하는 이메일로 커밋해왔던 것.. 해결1. 로컬 유저 정보 수정우선 앞으로 커밋들은..
React - react_dom_client__WEBPACK_IMPORTED_MODULE_1__.render is not a function 원인과 해결 방법
·
나의 에러 일지
개요React 강의를 따라서 간단한 문구를 출력하는 컴포넌트를 만들고 실행했는데, 화면에 아무 내용도 노출되지 않았다.import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import reportWebVitals from './reportWebVitals';import Library from './chapter03/Library';ReactDOM.render( );reportWebVitals(); 콘솔을 확인해보니 아래와 같은 에러 문구가 출력되었다.react-dom/client 모듈을 제대로 import하지 못하고 있거나 render 메서드를 잘못 사용하고 있는 것이다.Uncaught Ty..
티스토리 - hELLO 스킨 '카테고리의 다른 글' 2중 노출 되는 문제 해결 방법
·
etc
개요여러 블로그를 돌고 돌아 티스토리에 정착하면서 hELLO 스킨을 처음부터 사용했다. (hELLO 스킨을 개발해주신 정상우님 감사합니다.)혹시 hELLO 스킨에 관심 있으신 분은 링크 타고 들어가보시길.어느 때처럼 잘 사용하다가 '카테고리의 다른 글' 항목이 2중으로 노출되고 있는걸 발견했다. 하나는 CSS도 적용되지 않은채로 노출되고 있었다.스킨을 확인해보니 최신 버전은 해당 이슈가 없는 것으로 보였다. 나처럼 예전 버전을 사용하고 있는 분들은 동일한 이슈가 있을 것으로 보인다. 해결 방안1 - 코드 직접 수정하기티스토리에는 스킨 편집으로 스킨의 html, css 코드를 입맛에 맞게 수정할 수 있다.나도 한 번도 해본적 없는 기능이지만 이번에 해보기로 했다. 1. 개발자 모드로 문제가 되는 항목의 h..
QA - Test Case를 통한 QA 테스트
·
etc
개요이번에 회사에서 진행하던 프로젝트가 마지막 단계에 왔다. 이제 배포를 하기 전에 QA를 진행해야 했다. 하지만 우리 조직에는 체계화 및 구조적으로 QA를 진행하는 문화가 없었다. 당연히 QA 조직도 없다. 그래서 직접 QA 테스트를 진행하기로 했다. 본 글에 내가 QA테스트를 작성했던 내용을 남겨둔다. 부족한 부분이나 잘못된 내용이 있다면 언제든 댓글을 남겨주세요! QA 테스트(Quality Assurance)라고 하면 제조업 분야에서 기계 성능을 테스트하는 QA를 생각할 수 있다. IT에서의 QA는 서비스 기획 단계부터 참여하여 개발, 테스트 그리고 출시까지의 모든 과정에서 잠재적인 품질 리스크를 프로젝트 참여자들과 공유하고 해당 서비스가 사용자의 요구사항에 충족하는지에 대한 관리하는 활동이라고 볼..
ibatis/Mybatis - 동적 쿼리에서 발생하는 java.sql.SQLException : 부적한 열 이름 오류 원인과 해결 방법
·
나의 에러 일지
개발 환경Java 8Spring 2.xMavenOracleMybatisIntelliJ 개요Mybatis, ibatis에서는 동적으로 쿼리를 작성할 수 있는 Dynamic Tag 기능을 제공한다.동적 쿼리란 조건에 따라 쿼리를 동적으로 생성하는 것을 말한다. 이를 통해 하나의 쿼리로 다양한 조건을 처리할 수 있다. SELECT * FROM users WHERE 1 = 1 AND name = #{name} AND age = #{age}  위 쿼리는 조건에 따라 아래와 같은 쿼리들을 생성할 수 있다.SELECT * FROM usersSELECT * FROM usersWHERE 1 = 1AND name = '김찬빈'SELECT * FROM users..
Mybatis - SAXParseException: The content of elements must consist of well-formed character data or markup 원인과 해결법
·
Java
개요Mybatis로 작성한 쿼리문에서 발생한 에러이다. 내용을 해석해보면 다음과 같다. SAXParseException : 내용은 올바른 형식의 문자 데이터 또는 마크업으로 구성되어야 합니다. 아래는 SAXParseException 에러가 발생한 쿼리 예시이다. 쿼리로서만 보면 문제 있어 보이지 않는다. 그럼 어떤게 문제였을까?SELECT NAMEFROM USERSGROUP BY NAMEHAVING SUM(CASE WHEN SEX = 'M' THEN 1 ELSE 0 END)  개발 환경Java 8Spring 2.xMavenOracleMybatisIntelliJ 원인우선 SAX를 알아보자 SAX는 "Simple API for XML"의 약자로 이벤트 기반 XML 파싱해주는 기능을 한다.SAXParseExc..
Linux - 새로운 환경에서 SSHPASS 접속 안될 때
·
OS
개요오랜만에 데스크탑을 새로 장만했다. 재택근무를 하기 위해서 다시 개발 환경을 세팅하는 과정에서 sshpass로 서버 접속이 되지 않았던 경험을 남겨본다. (진짜 별거 아닌 문제였다.) 문제 상황이전에 sshpass 접속 내용을 alias로 등록해서 간편하게 접속했었기 때문에 해당 내용을 그대로 지금 PC에도 등록했다. 그런데 sshpass를 실행해도 특별한 문구가 나오는 것도 아니고 아무 반응도 없었다.$ sshpass -p [비번] ssh [계정]@[주소]# 반응 없음.. 원인과 해결 방안ssh를 처음 접속하게 될 경우 새로운 호스트의 SSH 키를 확인하고, 이를 사용자의 known_hosts 파일에 저장한다. 아마 처음 ssh로 접속해봤다면 아래와 같은 내용을 본 적이 있을 것이다.$ ssh [계..
카카오톡 공유 JavaScript SDK - because the scheme does not have a registered handler 에러 원인과 해결법
·
나의 에러 일지
개요카카오톡 공유하기 기능을 개발하고 있었다.카카오에서 제공하는 Javascript SDK를 활용해 기능을 구현하고 공유하기 기능이 잘되는지 테스트해보았다.모바일에만 적용할 기능이었기 때문에 크롬 개발자 모드에서 모바일로 설정하여 테스트를 진행했다. 하지만 공유 버튼을 눌러도 기능이 동작하지 않았다...콘솔창을 확인해보니 아래와 같은 에러가 출력되고 있었다.Not allowed to launch 'intent:kakaolink:(링크);end;' because the scheme does not have a registered handler. 원인원인은 나의 테스트 환경에 있었다. 카카오톡 Javascript SDK는 PC와 MOBILE 환경에 따라 다르게 동작하는데, 나는 PC 크롬 > 개발자 모드 >..
Java - File로 파일 목록 이름 조회하기
·
Java
개요 프로젝트 중 현재 날짜를 기반으로 해당 기간에 해당되는 JSP를 호출할 필요가 있었다. 하지만 임시로 사용되는 기능이었기 때문에 DB를 사용할 수 없었다. 그래서 JSP 네이밍 패턴을 아래와 같이 작성한 후 현재 날짜가 시작일과 마감일 사이라면 해당 JSP를 호출하도록 하려고했다. {시작일}_{마감일}{이름}.jsp 0101_0131JspView.jsp 특정 경로의 파일 목록을 어떻게 가져 올 수 있을까? java.io.File Java에서는 File 클래스를 통해서 파일과 디렉토리를 제어할 수 있다. 파일 생성, 읽기, 수정 및 삭제 등 여러가지 기능을 제공한다. 내가 필요한건 java 프로젝트의 jsp 디렉토리에 있는 jsp 파일 이름들이 필요하다. import java.io.File; publ..
Cold Bean
'분류 전체보기' 카테고리의 글 목록