스레드의 생성과 실행
스레드 생성 방법 스레드를 생성하는 방법에는 두가지가 존재한다. Thread를 상속받는 방법 Runnable 인터페이스를 구현하는 방법 스레드 생성 - Thread 상속 public class HelloThread extends Thread { @Override public void run() { Sys...
스레드 생성 방법 스레드를 생성하는 방법에는 두가지가 존재한다. Thread를 상속받는 방법 Runnable 인터페이스를 구현하는 방법 스레드 생성 - Thread 상속 public class HelloThread extends Thread { @Override public void run() { Sys...
메서드 영역 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 클래스 정보 : 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드 static 영역 : static 변수 보관 런타임 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상...
멀티태스킹과 멀티프로세싱 멀티태스킹 CPU 코어가 한개라고 가정해보자. 시분할(Time Sharing, 시간 공유) 기법 프로그램A를 먼저 수행하고, 프로그램B를 수행하는 것이 아닌 각 프로그램의 실행 시간을 분할해서 마치 동시에 실행되는 것 처럼 하는 기법이다. ⇒ 현대의 CPU는 초당 수십업번 이상의 연산을 수행할 수 있기 때문!...
Dirty Checking과 관련된 내용을 복습하며 영속화 순서에 대해 궁금했던 것들, 그리고 실험했던 기록을 작성합니다. 강의 내용 Parent Entity와 Child Entity가 1:N으로 연관관계가 맺어져 있음. (따라서 연관관계의 주인은 Child Entity.) 이 상태에서 아래 코드를 실행시킬 경우, Child child1 =...
Power Automate를 사용한 핸즈온 내용을 정리합니다!
GDSC Solution Challenge에 도전하면서, 처음 GCP를 사용하게 되었다! 기존 스프링부트 앱을 개발할 때 보통 AWS의 CodeDeploy (+ S3, EC2)를 활용하여 CI/CD를 구축하였는데, 이번엔 GCP도 사용해볼겸, 새로운 툴인 Jenkins를 통하여 CI/CD를 구축하는 방법에 대해 알아본 내용을 정리해보았다. 과정 정...
DDB에서 페이징이 필요한 이유 공식 문서에도 언급되어 있지만, DynamoDB의 단일 쿼리 작업은 최대 1MB의 데이터만 가져올 수 있습니다. 그렇기에 우리 어플리케이션에서 프로필 탭에서 자신이 찍힌 게시글과 찍은 게시글을 조회할 때 다음과 같은 페이징이 필요하다고 판단하여 리팩토링을 진행하게 되었습니다! 물론 성능 측면도 고려해보았을 때,...
‘POCHAK’을 개발하며 Spring Data DynamoDB를 사용해보았고, 그 과정에서 새롭게 알게 된 점을 정리한 글입니다. ※ 이후 포착은 서비스 특성상 데이터베이스를 DynamoDB에서 MySQL로 변경 후 다시 개발하였습니다. Spirng Data DynamoDB 라이브러리 POCHAK GitHub Reposit...
문제 상황 POCHAK은 원테이블 설계로, Partition Key와 Sort Key를 모두 사용하여 설계하였습니다. 하지만 Spring Data DynamoDB와 연결하는 과정에서 BeanCreationException이 발생하였습니다. 이를 해결하기 위해 알아보는 과정에서 Partition Key와 Sort Key를 같이 사용하는 경우, Cr...
문제 상황 LocalDateTime을 DynamoDB에 저장하려고 했으나, 다음과 같은 에러가 발생하였습니다. InvalidDefinitionException: Joda date/time type `org.joda.time.LocalDateTime` not supported by default 해결 과정 LocalDateTime parsing...