전체 446

[Daily Report] 22.01.05 - Tistory API 데이터 파싱 구현

Memo Remember l @Data - Lombok의 annotation - getter/setter/생성자 자동 생성 l Exception 처리 - e.printStackTrace() 활용 l XML parsing (정리 필요) - Document.toString()을 print할 경우 항상 null (tree가 null이라는 의미X) - XML parser 작성중 : 태그 안의 태그 가져오는 class 작성하기 Done l Tistory API 테스트 - URL + access token으로 정보 받기 l 데이터 파싱 확인 - XML 데이터 파싱 필요 To-do l XML parser 작성 - API에서 수신한 XML parser 작성 l XML parser를 이용한 DAO 작성 테스트 - 최신화..

정리하기/DR 2022.01.06

[Spring] CrudRepository findById가 안될 때

현상 CrudRepository의 메서드를 사용할 때 데이터를 불러오지 못하는 상황이 발생했습니다. 원인을 찾기 위해 확인해본 내용은 아래와 같습니다. DB에 데이터가 제대로 들어갔는지? - Mysql Workbench를 통해 table 데이터 확인 DAO의 String과 DB table의 varchar가 호환이 되는지? - 호환 가능 findById의 arg가 정상인지? - 코드와 같은 SQL 사용시 데이터 조회 가능 해결 Hibernate 로그를 살펴보니, SQL문의 table 이름에 문제가 있다는 것을 확인했습니다. DB의 table 이름이 TistoryInfo인데, 로그에 따르면 tistory_info라는 table에서 데이터를 찾고 있었습니다. 이러한 문제는 아래 글에서 Camel 방식이 und..

[Spring] IntelliJ에서 import에 빨간 불일 때

현상 오랜만에 open한 프로젝트에서 import를 실패한 오류가 발생했습니다. 제 기억에는 문제의 원인이 프로젝트 디렉토리를 드래그&드랍으로 옮겼을 때 path가 꼬인 것으로 추정했었습니다. 전에도 같은 문제가 있어서 해결했었는데... 기록해놓지 않아서 다시 찾아보게 되었습니다. 해결 아래 글에서 다양한 방안들을 볼 수 있었습니다. https://intellij-support.jetbrains.com/hc/en-us/community/posts/360003437020-Intellij-IDEA-cannot-resolve-any-import-statement .idea를 지우는 방법 등으로 해결되지 않았지만, invalidate cache로 해결할 수 있었습니다. 예방 아직 직접 해보진 않았지만, 디렉토리..

[Daily Report] 22.01.04 - data.sql 작성 및 DB 연동 테스트

Memo Progress 정리 l 목표 - [1주] Tistory API를 통한 데이터 수신 - [2주] 데이터베이스와 sync / 비교 - [3주] 데이터베이스에 추가 / 삭제 / 수정 l 현재 상태 - 데이터베이스 연동 확인 l 오늘 할 일 - data.sql 작성 - Tistory API 데이터 가져오기 테스트 - Tistory API DTO 작성 Done l data.sql 작성 - 테스트 데이터 입력 l DB 연동 테스트 - DB table underscore 문제 해결 To-do l Tistory API 테스트부터 진행하기 - DB에서 access token 가져오기 - Tistory API 전송 (글 목록) - 데이터 읽어보기 l Tistory API마다 DTO 작성 - 필요한 데이터 확인 ..

정리하기/DR 2022.01.04

HTTP Header는 case-sensitive인가

1. (동기) HTTP header를 가져오지 못하는 상황 Spring으로 REST API Controller를 구현하던 중, HTTP 헤더를 읽어오지 못하는 상황이 발생하였습니다. HTTP request는 Postman으로 전송하였고, 읽고자하는 HTTP header는 "Content-Type"이었습니다. Postman의 header 확인 Controller 확인 Response 확인 2. (문제접근) HTTP header가 정상적으로 서버에 실려왔는가? 먼저 HTTP header가 정상적으로 서버에 도착했는지 확인이 필요했습니다. 이를 위해 서버 controller에서 수신한 HTTP header의 모든 내용을 출력해보았습니다. Controller에서 출력 Controller에서 출력 확인 3. (문..

[3장 - 설계] 자바 클래스 설계를 위한 기능 및 데이터 구체화

아직도 설계중... 계획했던 프로젝트가 간단할 줄 알았는데, 아직 설계도 제대로 끝내지 못했다. DB를 설계하고, API 결과를 분석하고, 이들의 싱크를 맞추는 게 생각보다 어려운 일이라는 것을 알았다. 이전에 설계하고 분석한 내용을 토대로, 설계가 편하도록 데이터 관계를 정리하고, 각 기능에 대한 psuedo code를 작성하여 설계해보기로 했다. 데이터 관계 (DB, API) 먼저 이전에 설계한 DB를 ER다이어그램으로 그려보았다. 왼쪽 Category/Post가 블로그의 카테고리와 내용이 들어가는 테이블이다. 중간 TistoryCategory/TistoryPost는 Tistory에 관련된 내용을 따로 분리시켜놓은 테이블이다. 이렇게 Tistory를 분리시켜놓은 이유는, 혹시 다른 블로그를 사용하게되..

만들기/MAMA COCO 2021.11.23

[라인] 2021 하반기 SW개발 신입 LINER 공개채용 코딩테스트 후기

지난 9월 11일 총 3시간동안 라인 공채 코딩테스트에 응시했습니다. 총 6문제를 풀어야했고, 짧은 시간에 많은 문제를 해결해야하는 만큼 극악의 난이도는 아니었다고 생각합니다. 구체적인 문제를 공유할 수는 없지만, 제가 생각하는 주요 문제해결요소와 느낌을 짧게 공유해보려 합니다. 1. 배열 첫 번째 문제는 배열과 관련한 문제였습니다. 배열 내에서 특정 조건을 만족하는 그룹을 찾는 방식으로, 배열의 linear한 특성와 인덱스를 활용하여 조건을 만족하는 그룹을 찾아낼 수 있었습니다. 2. 슬라이딩 윈도우, 구현 두 번째 문제는 효율적인 완전탐색을 위한 슬라이딩 윈도우를 활용하고, 까다로운 조건을 확인하여 결과를 도출하는 문제였습니다. 문자열 활용도 요구되어, 짧은 시간안에 구현하기는 조금 헷갈릴 수 있는 ..

후기 2021.11.18

[카카오] 2022 신입 개발자 블라인드 채용 1차 코딩테스트 후기

지난 9월 11일 총 5시간동안 카카오 공채 1차 코딩테스트를 응시했습니다. 여러 코딩테스트를 많이 경험하신 분들도 카카오 공채는 높은 난이도와 긴 시간에 힘들어하는 테스트입니다. 총 7문제를 풀어야했으며, 이 문제를 모두 풀기위해 5시간은 길지 않은 시간이고, 생각보다 시간이 빨리 지나갑니다. 자세한 문제는 추후 프로그래머스에 공개될 것으로 예상되기 때문에, 매우 간단하게 제 생각만 공유해보려합니다. 1. Hash Hash table을 조건에 맞게 사용하는 문제였습니다. 중복, 카운트와 같은 조건으로 Hash table을 구성하여 결과물을 간단하게 도출할 수 있었습니다. 2. 수학, 문자열 수학을 활용한 문자열 문제였습니다. 올해 여러 테스트를 응시하면서 느꼈는데, 소수 관련한 문제를 많이 봤던 것 같..

후기 2021.11.17

[운영체제] 프로그램이 만들어지고 실행되기까지

고전적인 방식으로 프로그래밍 언어의 종류는 '컴파일 언어'와 '인터프리터 언어'로 나눕니다. 컴파일 언어는 한 번에 기계어로 바꾸어 실행파일을 만드는 방식이고, 인터프리터 언어는 한 줄씩 읽어 기계어로 바꾸고 실행하는 방식으로, 실행파일을 따로 만들지 않습니다. 따라서, 두 방식은 프로그램을 만들고 실행하는 과정이 다릅니다. 이제는 이와 같은 방식으로 언어를 분류하지 않는 듯 하지만, 먼저 두 방식을 비교해보았습니다. 컴파일 언어의 프로그램 생성과정 컴파일 언어인 C언어를 기준으로, 컴파일 언어의 프로그램 생성은 다음 과정을 거칩니다. 전처리기는 컴파일 전에 #include나 Macro와 같은 내용을 처리합니다. 컴파일러는 어셈블리어로, 어셈블러는 바이너리코드인 기계어로 번역합니다. 링커는 하나 이상의 ..

CS/운영체제 2021.10.01

[Python] Pypy와 CPython (구현체)

프로그래밍 언어의 구현체 (Implementation) 우리는 파이썬을 이야기할 때 종종 언어 뿐만 아니라 구현체를 포함하여 말한다. 파이썬은 다양하게 구현될 수 있는 언어의 스펙일 뿐이다. When we speak of Python we often mean not just the language but also the implementation. Python is actually a specification for a language that can be implemented in many different ways. 프로그래밍 언어에서 말하는 구현체란, 위와 같이 실제 언어를 구현한 방식을 말합니다. 언어라는 것은 문법과 같이 정의된 추상적인 틀이며, 이에 대한 구현에 따라 동작 방식도 성능도 달라집..

CS/언어 2021.10.01