
목차 새해가 지난지 한달이 흐른 늦은시점이지만, 회고를 통해서 작년을 되돌아보려고 한다. 작년 한 해는 생활 패턴과 같은 일상의 작은 부분들을 비롯해서 삶의 방향, 방식 등 큰 부분까지 많은 변화가 생겼던 것 같다. 이런 변화들을 글을 통해서 되돌아보고 새로운 한 해를 다시 준비해보려고 한다. 취업 작년 중 가장 큰 사건이자 변화라고 한다면 취업일 것이다. 운이 좋게 취업 준비를 시작하자마자 바로 좋은 이미지를 갖던 기업에 입사를 하게 되었다. 취업 후 가장 변화된점을 뽑자면 삶의 방향성을 갖게 된 점이있다. 과거에는 단순한 목표이기만했던 개발자라는 직업이 이제는 밥벌이 수단이 되었고, 나를 표현하는 방식이 되었다. 이 직업을 갖고 만나는 사람들 속에서 나의 역할은 무엇이고 어떤 태도로 일을 하고 무엇을..

Motivation 1. Kafka Connector 내용을 공부하면서 DB에 실제로 카프카 커넥터를 붙여서 실행하고 사용해면 좋은 경험이 되고 더 잘 기억에 남을 것 같았음 ✔ 아쉬웠던 점 👉 자주 사용하는 ORACLE로 연동해보면 더 좋을 것 같다고 생각해서 시도를 했으나 잘 안됐음, 관련 글을 찾아봤는데 ORACLE에 Connector를 연동한 사례가 별로 없었음(MySQL은 비교적 예시도 많았으나, 오라클은 유독 없음. 오라클에 적용할 수 없는 어떤 이유가 있는건가.. 의문..) 👉 m1맥이라 오라클 서버를 실행할 수 없어서 오라클 클라우드에서 제공하는 Autonomous DB를 사용하고 있었는데, 여기에 카프카 커넥터를 적용한 사례가 하나 있긴했으나 Docker를 이용한 방법(나는 카프카 서버..

목차 배경 상용 서버는 대부분 linux 환경에서 구동되는데, 서버 개발과 운영 모니터링을 하다보면 서버의 로그를 확인해야하는 순간들이 생긴다. 이때 직접 서버에 접속하고 로그 파일을 탐색하며 어느시기(대게 몇시 몇분 몇초 단위로)에 어떤 요청을 받고 어떤 에러를 뱉었는지 분석해야하는 순간들이 종종 발생하는데, 그때 linux의 파일 내용 검색 명령어를 활용하면 파일 탐색시간을 축소할 수 있고 그만큼 빠른 시간내에 로그를 분석하여 에러를 확인할 수 있다. 대부분 서버는 linux 환경에서 구동되기 때문에 동작 방식과 관련 명령어들을 숙지해두면 서버 로그 파일 탐색과 모니터링 이외에도 서버 개발과 운영을 하는데 많은 도움이 될 것 같다. 이번에는 그 중 linux 환경에서 파일 탐색을 하는데 쓰이는 기본..
데드락(DeadlocK) 시스템 자원에 대한 요구가 뒤엉켜서, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다리며 무한 대기에 빠지는 상황 데드락 발생 조건 상호 배제 한 번에 하나의 프로세스만 자원을 사용할 수 있음 사용중인 자원을 다른 프로세스가 사용하려면 해제될때까지 기다려야 함 점유 대기 다른 프로세스에 할당된 자원을 점유하기위해 대기하는 프로세스가 존재해야함 비선점 이미 할당된 자원을 강제로 뺏을 수 없음 순환 대기 대기 프로세스의 집합이 순환 형태로 자원을 기다리고 있어야함 해결 방법 예방(Prevention) 데드락이 발생하지 않도록 예방 회피(Avoidance) 데드락 발생 가능성을 인정하면서 적절하게 회피 탐지 및 회복(Detection & Recovery) 데드락 ..
필요한 단축키 있을때마다 계속 업데이트 익혀두면 코드 짤 때 / 리팩토링할 때 / 기존 코드 뒤져볼때 상당히 편리함 필수 단축키 Windows MacOS 단축키 기능 Ctrl + Shift + Space Control + Shift + Space 적합한 코드 자동완성 추천 Shift + Shift Shift + Shift 파일, 클래스, 설정 등 키워드에 관련된 가능한 모든 것을 검색 Alt + Insert Command + N 생성자, Getter/Setter, toString과 같은 코드 생성 (Lombok으로 대체 가능) Ctrl + W Ctrl + W 커서 근처의 코드 선택 영역 확대 Ctrl + Shift + W Ctrl + Shift + W 커서 근처의 코드 선택 영역 축소 Ctrl + P C..

DUAL 테이블 오라클에서 제공하는 기본 테이블 SYS 소유이지만 모든 사용자에게 권한을 주어서 내가 만든 테이블처럼 조회 가능 사용법 1. 임시로 원하는 임시 값을 리턴받고 싶을 때(간단한 테스트를 하는 경우) SELECT 'nooblette.net' as nooblette; select 쿼리를 통해 간단한 데이터베이스 접속 테스트를 원할 때 mysql과 MSSQL에서는 위와같이 select만 있는 쿼리를 지원해서 조회해볼 수 있지만, ORACLE에서는 이를 지원하지 않는다. SELECT 'nooblette.net' as nooblette FROM DUAL; 이때, 위처럼 FROM 절에 DUAL 테이블을 담아서 사용할 수 있다. 즉, FROM절에 특정 테이블을 담지않고 select 만으로 데이터를 조..
트랜잭션 DB에서 데이터의 일관성과 무결성을 보장 하나의 그룹으로 처리되어야 하는 명령어를 모아놓은 작업 단위 e.g) 하나의 그룹이 4개의 SQL문으로 이루어졌을 경우, 4개의 SQL문이 완전히 처리가 되거나 아니면 하나도 수행이 되지 말아야함(All-OR-Nothing) 일반적으로 Begin_transaction과 End_transaction으로 나뉘어 트랜잭션 그룹 내에서 처리해야할 명령어들을 기술 트랜잭션 단위 장애 발생 시 복구 작업을 할 때 사용 병행 제어 시 논리 작업 단위로 사용 데이터베이스의 일관성과 무결성을 유지하기 위해 여러개의 트랜잭션 단위를 잘 정의해두어야함! 트랜잭션 예시 A가 B에게 100,000원을 이체하는 경우 하나의 트랙잰션에 들어가는 4개의 SQL문을 정의 Select ..

백엔드 개발과 관련한 업무에 대해 배우고 조금씩 실제 코드를 만져가며 작업을 하면서, 브라우저에서 사용자에게 화면을 보여주기 위한 두 렌더링 과정을 이해하고 차이를 분명히 알아두어 넘어갈 필요를 느꼈다. SSR(Server Side Randering)과 CSR(Client Side Rendering) 들어가기에 앞서, Rendering : 웹 페이지가 요청해서 (서버로부터) 받은 내용을 브라우저 화면에 표시하는 것 SSR(Server Side Rendering) - 서버 사이드 렌더링 서버쪽에서 렌더링 준비까지 마친 상태로 클라이언트에게 전달하는 방식 전통적인(오래된) 웹 애플리케이션에서 주로 사용 요청할때마다 서버에서 처리를 한 후 페이지에 응답 새로고침이 일어나면 새로운 페이지가 렌더링됨 과정 Use..

목차 배경 인텔리제이 환경에서 Spring Boot를 사용하지 않고, Maven 기반의 웹 프로젝트를 Tomcat을 통해서 웹 개발환경을 구축해보았다. (해당 코드는 git hub repository 에 올려두었습니다 : https://github.com/nooblette/mvn-tomcat-webapp) Maven과 Tomcat으로 웹 개발 환경 구축하기(+ IntelliJ) Spring + Maven + Tomcat으로 WAS 환경 구축을 위해 내가 준비한 툴과 버전은 다음과 같다. - IntelliJ : https://www.jetbrains.com/ko-kr/idea/download/#section=mac - Maven (3.8.5) : https://maven.apache.org/download..
배경 포트폴리오, 코딩테스트, 기술면접 등 취준중에 도움이 되었던 사이트와 유용하게 사용했던 사이트 모음(정리) 취준 #Portfolio 포트폴리오 작성법 https://medium.com/%EC%98%A4%EC%9D%BC%EB%82%98%EC%9A%B0-%ED%8C%80-%EB%B8%94%EB%A1%9C%EA%B7%B8/%EC%A3%BC%EB%8B%88%EC%96%B4-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EB%A5%BC-%EC%A4%80%EB%B9%84%ED%95%A0-%EB%95%8C-%EC%95%8C%EC%95%84%EB%91%90%EB%A9%B4-%EC%A2%8B%EC%9D%80-%EA..
(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) Jackson을 사용해서 JSON을 파싱하는데 아래와 같은 에러 메시지가 떴고, 이를 해결하기 위한 방안이다. 2021-10-12 02:19:05.038 ERROR 11654 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing fa..
결과 조회 쿼리 객체에서 아래의 메서드들을 사용해 JPQL을 실행한다. query.getResultList()결과를 컬렉션으로 반환한다. 결과가 없으면 빈 컬렉션이 반환된다. 1건이면 1건만 들어간 컬렉션(List)이 반환된다. query.getSingleResult()결과가 정확히 1건 일때 사용한다. ➡️ 단일 결과가 보장 될 때만 사용 결과가 없으면 javax.persistence.NoResultException, 결과가 1건 이상이면 javax.persistence.NonUniqueResultException이 발생 출처