일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 코테
- 해시
- git
- 카카오 알고리즘
- nestjs auth
- 알고리즘
- @Autowired
- nestJS
- thymeleaf
- spring boot
- nestjs typeorm
- 시스템호출
- AWS
- @Component
- TypeORM
- Spring
- 프로그래머스
- OpenCV
- 가상면접사례로배우는대규모시스템설계기초
- 스프링
- 구조체배열
- python
- 파이썬
- 코딩테스트
- Nodejs
- 카카오 코테
- 컴포넌트스캔
- C언어
- 카카오
- C++
- Today
- Total
목록전체 (333)
공부 기록장 💻
보호되어 있는 글입니다.
보호되어 있는 글입니다.

지난 11월 구름스퀘어에서 개발자로서의 '성장'을 주제로 진행된 두번째 COMMIT 행사에 참여하고 4개월 만에 다시 COMMIT 세미나에 오프라인 참여를 하게 되었다. 이번에는 취준생으로서 나에게는 조금은 생소한 단어, "기술 부채(Techincal Debt)" 라는 주제로 세미나가 진행되었다. speaker은 양수열 소장님으로, 한국인 최초 Java Chapion, Oracle ACE Pro, 전자정부 프레임워크 리더를 맡고 계시면서 다수의 스타트업 CTO로 역임되며 수많은 멘토링을 하셨고, Software Maestro 멘토로 활동 중이시다. 기술부채, 과연 무엇일까? 기술 부채란, 1992년 와드 커닝험이 만든 용어로 기술적인 '빚'을 말한다. 기술의 완성도보다 비즈니스의 속도를 중요시 여기며 기..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.

프로젝트를 진행하는 도중, 인터페이스 문서에서 Json 데이터로 Response Body를 보낼 때, json의 key 값에 언더바 문자 '_' 가 들어가는 것을 확인하였다. 오래전에 프론트와 상의하여 API 문서를 만들었을 때에는 DB의 각 칼럼에 데이터들을 저장할 것 까지 고려하여 json 형식의 데이터 key 값으로 underline이 포함되는 것을 크게 개의치 않았다. 하지만 개발을 하면서 바로 DTO를 통해 json 데이터를 전달해야 하는 경우 underline이 포함되는 key에 대해 어떻게 처리를 해야 하나 고민을 하게 되었다. 그러던 중 Jackson annotation에서 제공하는 @JsonProperty 를 이용해 값을 프론트에게 전달할 때, key의 이름을 변경할 수 있다는 것을 알게..

공공데이터포털의 날씨 예보 Open API를 호출하여 진행중인 프로젝트에 적용하는 상황에서, Service Key에 포함되어 있는 ASCII charcater code중 하나인 % 가 인코딩 되는 과정에서 오류가 발생하며 API 호출이 제대로 되지 않는 이슈가 있었다. 부여받은 Encoding용 일반 인증키는 아래와 같다. 중간중간 보이는 % 문자가 계속해서 문제를 발생시켰다. 구글 검색 시 % 문자가 포함된 문장을 검색하면 원하는 결과를 얻기가 어렵다. 결국 ChatGPT를 활용하여 답을 얻고자 했다. 역시나 원하는 결과를 얻을 수 있었다..! Request URL에 포함되어 있는 % 문자를 인코딩 하는 과정에서 %25 로 해석을 하게 되어 자동적으로 %뒤에 25를 붙이게 된다는 내용이었다. 위의 질문..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

문제의 원인 알라딘에서 제공하는 Open API 중 키워드를 통한 도서 검색 API, 관심사 카테고리에 따른 도서 목록 API를 이용하여 입력 값에 따른 도서 목록을 보여주는 프로젝트를 진행하는 중, 도서 목록 결과 페이지에서 model의 attribute으로 등록한 회원 정보가 타임리프 문법의 오류로 나타나지 않는 문제가 발생했다. 도서 목록 결과를 조회하기 위해 특정 값을 입력하는 경로는, 현재까지 아래의 두 가지 방식이 있다. 기본적인 회원 정보를 입력하여, 관심사에 따른 추천 도서 목록 추출 키워드 검색을 통한 도서 목록 추출 1. 기본적인 회원 정보를 입력하는 페이지 간단하게 이름, 나이를 비롯한 개인 정보를 입력 및 선택하는 방법이다. 선택된 관심사에 맞게 추천 도서 목록을 반환한 페이지는 다..

문제 발생 원인 우선 발생한 문제는 아래와 같다. Template View의 부분에서 input 값이 없는 경우 Bad Request (HTTP Status Code 400) 에러가 발생한다. 특히 아래의 경우, 나이 (age) 는 int형의 값을 필수적으로 요구하는 필드이기 때문에 데이터를 저장하는데 있어서 문제가 발생하였다. (name의 경우 "" 빈 String 형태의 값이 전달되어 별다른 문제를 발생시키지 않지만, age 필드의 경우 0과 같은 default값마저 전달되지 않았기 때문에 문제가 발생한다.) Spring Framework 내부적으로는 validation.BindException 이 발생했음을 확인할 수 있다. [nio-8080-exec-2] .w.s.m.s.DefaultHandler..
보호되어 있는 글입니다.

Git 이란? Git은 형상 관리 도구(Configuration Management Tool) 또는 버전 관리 시스템(Version Control) 중 하나로, 소프트웨어를 개발하는 기업의 핵심 자산인 소스 코드를 효과적으로 관리할 수 있게 해준다. 많은 기업이 SVN에서 Git으로 갈아타고 있는데, Git은 분산형 관리 시스템으로 중앙 서버에서 소스코드와 히스토리를 저장하는 SVN과 달리, Git은 소스 코드를 여러 개발 PC와 저장소에 분산해서 저장한다. 즉 사본을 로컬에서 관리하기 때문에, 속도가 매우 빠르고 중앙 서버에 장애가 발생해도 로컬 저장소에서 commit 할 수 있으며, 로컬 저장소의 복원도 가능하다. Git의 장점 소스코드를 주고 받을 필요 없이, 여러 명이 동시에 작업하는 병렬 개발이..

Thymeleaf Template Engine 문법(img th:src)을 이용해 이미지를 View에 업로드해보자 기존 html 에서 image url 값을 통해 이미지를 시각적으로 나타내기 위해서는 와 같은 형태를 사용했다. Thymeleaf Template Engine을 사용해 이미지를 업로드 할 때는 Thymeleaf 문법을 어떻게 사용해야 할까? String 타입의 url 링크를 받아온 값에 대해, 와 같이 사용해주면 된다. Title 아래와 같이 로컬에서 테스트했을 때, View 결과 화면에서 이미지가 잘 나타나는 것을 확인할 수 있다.

알라딘 도서 검색 Open API를 활용하여 얻은 도서 목록 결과를 List에 담아 View에 전달하기 알라딘 도서 검색 Open API를 이용해 특정 쿼리에 대한 검색 결과로 JSON 형태의 데이터를 받아, 이를 Thymeleaf Template Engine을 이용해 직접 만든 View에 결과를 출력하고자 한다. 각 도서 객체는 "BookSearchResult" 에 담았으며, 이를 List에 담아 전체 도서 목록 결과를 출력해보자. Form 메인 홈에서 query를 입력하는 form은 다음과 같다. /book/result 경로로 GET 요청을 보내는 form이다. 키워드 입력: 완료 Controller Controller은 다음과 같이 작성해주었다. @RequestMapping의 GET 요청을 "/bo..
인프런 - 스프링 핵심 원리 기본편 정리 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 스프링 빈은 간단하게 1. 객체 생성 후, 2. 의존 관계 주입 을 하는 라이프사이클을 가진다. (단, 생성자 주입의 경우는 예외이다) 스프링 빈은 객체를 생성하고, 의존 관계 주입이 다 끝난 후에야 필요한 데이터를 사용할 수 있는 준비가 완료된다. 따라서 초기화 작업(초기 작업 시작)은 의존 관계 주입이 모두 완료되고 난 후에 호출해야 한다. 그러나 의존 관계 주입이 모두 완료된 시점을 어떻게 알 수 있을까? 스프링은 의존 관계 주입이 완료되면 스프링 빈에게 ..

Ubuntu 환경에서 Node.js 설치 여러 방법이 있지만, 우분투의 기본 패키지 관리자인 Apt 를 이용하여 간단하게 우분투 패키지 저장소에 기본으로 들어가 있는 nodejs를 다운받아보자. (다만, 아주 오래된 버전이 설치가 되므로 이 방법은 추천하지 않는다.) $ sudo apt update 2. nodejs 다운로드 $ sudo apt install nodejs 3. 설치 확인 (버전 확인) $ nodejs -v 4.노드 패키지 매니저인 npm 다운로드 $ sudo apt install npm 현재 사용하고 있는 Windows에는 18.21.1 버전의 nodejs를 사용하고 있는 반면, ubuntu 환경에서 위의 apt 를 이용해 설치한 결과 12.22.12 버전의 nodejs가 설치되었다.
인프런 - 스프링 핵심 원리 기본편 정리 스프링 빈의 자동, 수동 등록 방식 그동안 스프링 컨테이너에 스프링 빈을 등록하는 방식 중, 스프링 빈을 자동적으로 등록하는 방식, 수동적으로 등록하는 방식에 대해 학습하였다. 수동 등록의 경우, 직접 new()를 통해 구현 객체를 생성하고, 의존 관계를 직접 주입하여 @Bean 을 이용해 스프링 컨테이너에 각 스프링 빈을 등록하는 java 코드 방식 또는 xml 방식이 있었고, 자동 등록의 경우, @ComponentScan을 통해 @Component 가 붙은 객체들을 스프링 빈으로 자동 등록하고, @Autowired를 통해 의존 관계를 자동적으로 주입하는 컴포넌트 스캔 방식이 있었다. 실무적으로는 어떻게 올바르게 운영하는 것이 좋은가? 편리한 자동 기능을 기본으..