| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 카카오
- thymeleaf
- spring boot
- C언어
- @Component
- C++
- nestJS
- 파이썬
- AWS
- 코딩테스트
- OpenCV
- TypeORM
- 해시
- 알고리즘
- 컴포넌트스캔
- 스프링
- 카카오 알고리즘
- 시스템호출
- nestjs auth
- 카카오 코테
- 코테
- @Autowired
- Nodejs
- nestjs typeorm
- python
- 가상면접사례로배우는대규모시스템설계기초
- git
- Spring
- 프로그래머스
- 구조체배열
- Today
- Total
목록# Tech Studies (130)
공부 기록장 💻
DAN24 실시간 라이브 인코딩 https://tv.naver.com/v/67 네이버 TV tv.naver.com Dan25https://tv.naver.com/v/87882294 네이버[팀네이버 컨퍼런스 DAN25] Keynote 03: 입체적 경험이 가능한 콘텐츠 플랫폼tv.naver.com ncloud Media Intelligence Platform https://www.ncloud.com/product/media/mediaAIUnderstanding#detail NAVER CLOUD PLATFORMcloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Cer..
https://dublin-java.tistory.com/56 JUnit 5 Parameterized Tests 사용하기혹시 테스트 코드를 작성할 때 아래와 같은 중복되는 코드를 작성하고 계신가요? @Test @DisplayName("User 생성 name 2자 미만 예외처리") void createUserException01() { IllegalArgumentException e = assertThrows(IllegalArgudublin-java.tistory.com
https://jaehoney.tistory.com/112 Java - Atomic Variable (+ 동시성 제어 비교 with volatile, synchronized)동시성 제어 in 자바 자바에서 Multi Thread 환경의 동시성을 제어를 위한 방법은 대표적으로 3가지가 있습니다. volatile synchronized Atomic variable 3가지 방법은 모두 쓰임새가 다른 데 같이 살펴보겠습니jaehoney.tistory.com
전략 패턴(Strategy Pattern) 이란? 전략 패턴이란, 실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴 (Behavior Design Pattern) 이다. 특정한 계열의 알고리즘들을 정의하고, 각 알고리즘을 캡슐화 하여 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다.각 객체들이 할 수 있는 행위(알고리즘) 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔줌으로써 행위를 유연하게 확장하는 방법을 말한다. 여기서 포인트는?유사한 행위에 대한 알고리즘을 각각 정의하여 캡슐화 한다.객체의 행위(알고리즘, 전략)를 동적으로 바꿀 수 있는데, ..
gitignore에 새로운 파일명을 적고 적용을 하려고 했을 때,제대로 작동하지 않는 경우가 발생한다. 이는 원격 저장소에 이미 저장되어 있는 파일에 대해,로컬에서 삭제 혹은 gitignore에 적용한다고 해서 원격 저장소에서 삭제가 이루어지지 않기 때문이다.이러한 경우 캐시 되어 있는 파일들을 모두 삭제 후, 다시 적용을 해주어 해결할 수 있다. 다음의 명령어를 사용하면 된다. git rm -r --cached .git add .git commit -m "fixed untracked files" 예를 들어, application.yml 의 파일을 새로 아래 .gitignore에 추가해주었다.application.yml에 중요한 aws 관련 정보들을 추가한 후에 이를 git에 업로드되지 않도록 유의해야..
문제 상황 최근 교내 축제 웹사이트 백엔드 Admin 서버를 Elastic Beanstalk으로, MySQL DB를 RDS로 배포한 후 서비스를 출시한지도 어느덧 약 일주일이라는 시간이 지났다. AWS로부터 점점 RDS 인스턴스 프리티어 만료에 따른 과금 메일이 지속해서 오고 있고 AWS Billing 청구서를 보니 점점 사비로는 감당하기 어려울 정도의 요금이 청구되고 있었다. 결국에 스냅샷을 저장하고 RDS 인스턴스를 삭제하기로 결정하였다. 아래와 같이 삭제를 눌렀는데, 이슈 발생 다음과 같은 이슈가 발생하였다. 삭제 방지 옵션이 활성화되어 있어 곧바로 인스턴스 삭제를 할 수가 없었다. 문제 해결 찾아보니, AWS는 데이터베이스가 예기치 않게 삭제되는 것을 방지하기 위해 인스턴스 구성에 '삭제 방지 활..
보호되어 있는 글입니다.
1. Code Build 2. Pipeline https://potato-yong.tistory.com/80 [CI/CD] Git과 연동하여 AWS Pipeline 생성하기이번에 해볼 실습은 AWS에서 제공하고 있는 실습이다. aws.amazon.com/ko/getting-started/hands-on/create-continuous-delivery-pipeline/ AWS에서 지속적 전달 파이프라인을 생성 아래의 다이어그램은 이 자습서에서 사potato-yong.tistory.com https://www.red-gate.com/simple-talk/blogs/deploying-a-nodejs-application-from-github-to-aws-elastic-bea..
문제 상황 AWS에서 Elastic Beanstalk 환경을 구성하여 Spring Boot 프로젝트를 배포한 후, 배포된 URL로 접속했을 때 아래와 같이 502 Bad Gateway 오류가 나타나는 문제가 발생했다. HTTP 502 상태 코드 (Bad Gateway)는 CloudFront가 요청한 리소스들을 서빙할 수 없음을 나타내는 에러 코드인데 왜 발생하는 것일까? 원인 파악 아래 스택 오버플로에 명쾌한 답이 나와있었는데, ELB의 로드 밸런서의 nginx 가 기본적으로 포트 5000을 가리키고 있는 것이 원인이었다. https://stackoverflow.com/questions/54612962/502-bad-gateway-elastic-beanstalk-spring-boot 502 bad gat..
Route 53 에서 도메인을 등록해보자.delimo-server.com 를 사용하고자 한다! 먼저 도메인의 가용성을 먼저 확인해보자. 검색 결과로 사용 가능을 확인했고, 결제 진행을 누르면 된다.개인 정보들을 입력하고 나면,아래와 같이 Route 53 > 요청에서 도메인 등록이 진행중인 것을 확인할 수 있다. 호스팅 영역 레코드를 생성해보자. AWS Certificate Manager에서 SSL 인증서 발급 가비아에서 구매한 도메인.. 너무 오래 걸리는 검증 대기중 !!! https://omty.tistory.com/47 AWS Route53 으로 도메인(https) 연결하기기존에 AWS ElasticBeanstalk으로 배포한 웹앱에 구입한 도메인을 연결할 필요가 있어 AWS ..
보호되어 있는 글입니다.
자바 ORM 표준 JPA 프로그래밍 - 기본편(인프런) 참고 Flush란? 플러시란, 영속성 컨텍스트의 변경 내용(Insert, Update, Delete 등)을 데이터베이스에 반영하는 것을 말한다. Flush 발생한 경우에는, 1) 변경을 감지하고 2) 수정된 엔티티를 쓰기 지연 SQL 저장소에 등록하고, 3) 쓰기 지연 SQL 저장소의 쿼리들을 데이터베이스에 전송하게 된다. Flush를 수행하는 방법들 em.persist(memberA); em.persist(memberB); em.persist(memberC); // JPQL 실행 query = em.createQuery("select m from Member m", Member.class); List members = query.getResultL..
자바 ORM 표준 JPA 프로그래밍 - 기본편(인프런) 참고 JPA란? JPA는 Java Persistent API의 줄임말로, Java 진영의 ORM 기술 표준이다. 여기서 ORM (Object Relational Mapping) 이란, 객체와 관계형 데이터베이스를 매핑해주는 기술이다. 객체 지향 프로그래밍에서 객체는 객체대로 설계하고, 관계형 DB에서서는 DB, Table 대로 설계했을 때, ORM 프레임워크가 중간에서 이 둘을 연결하는 역할을 한 것이다. JPA와 JDBC JPA는 Java 어플리케이션이 DB와 SQL 문을 통해 연결되는 Connection 기술인 JDBC API와 JVM 사이에서 JDBC API를 보다 더 간단하게 사용할 수 있게 도와주는 중간다리의 역할을 한다. JPA를 왜 사용..
인프런 - 스프링 핵심 원리 기본편 정리 빈 스코프란? 스프링 빈은 스프링 컨테이너의 시작과 함께 생성되어, 스프링 컨테이너가 종료될 때까지 유지된다. 이는 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 떄문이다. (이전에 싱글톤 패턴이 무엇인지, 그리고 스프링의 싱글톤 컨테이너에 대해 학습한 적이 있다.) 스코프란 빈이 존재할 수 있는 범위를 말하며, 싱글톤 스코프 외에 스프링에서 지원하는 다양한 스코프에 대해 알아보도록 하자. 스프링에서 지원하는 스코프 싱글톤 스코프: 기본 스코프로, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 스코프: 스프링 컨테이너가 프로토타입 빈의 생성, 의존관계 주입까지만 관여하고 더이상 관리하지 않는 매우 짧은 범위의 스코프 웹 관련 스코..
프로젝트를 진행하는 도중, 인터페이스 문서에서 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. 기본적인 회원 정보를 입력하는 페이지 간단하게 이름, 나이를 비롯한 개인 정보를 입력 및 선택하는 방법이다. 선택된 관심사에 맞게 추천 도서 목록을 반환한 페이지는 다..
보호되어 있는 글입니다.
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 결과 화면에서 이미지가 잘 나타나는 것을 확인할 수 있다.