반응형

분류 전체보기 249

태태개발일지 - 도메인 주도 설계의 사실과 오해 후기(조영호 강사님)

Next Step에서 진행하는 DDD 강의를 듣게 되었다. 수강료는 18만원으로 2일에 거쳐서 4시간씩 진행되는 강의였다. 수강 이유프로젝트에서 클린 + 레이어드 아키텍처로 진행하다가 도메인을 나눌 때 어떻게 나누어야하는지 궁금했고, DDD라는 개념을 접했는데 이에 대해서 더 알고싶어 수강을 하게 되었다. 강사님조영호 강사님이다. 객체지향으로 유명하시고, 이분의 인프런 강의를 수강한 상태로 진행 되었다. 시작DDD와 객체지향에 대해 오해가 있는 것 같다.  DDD를 사용하면 문제가 해결된다.?DDD 너무 어려워 안할래? 객체지향과 도메인주도 설계의 차이점 객체지향알고리즘과 데이터의 조화를 통해 작은 문제를 해결하는 것이다. 도메인 주도 설계(디자인패턴, 단위테스트, 아키텍쳐) 이러한 기술들을 비지니스로직..

태태개발일지 - 고급 자바 멀티 스레드

인터럽트 1. volatile boolean runFlagRunnable 클래스 안에 volatile boolean runFlag = true;를 선언해준다.  main method에서 task.runFlage = false; 넣으면 작업을 중단할 수 있다. 하지만 위와 같은 방법으로는 바로 작업을 중단할 수 없기 때문에  log("작업 중단 지시 thread.interrupt()"); 2.thread.interrupt();  인터럽트 메서드를 사용한다.  하지만 interrupt(); 가 발생했다고 바로 interruptException이 일어나는게 아니다.sleep(); 과 같이 스레드를 대기시키는 명령어를 만나면 interruptException을 만든다.  예외가 터지면 -> 이제 인터럽트 상태가..

JAVA 2025.02.11

태태코딩 - 김영한 자바 고급[스레드]

Thread 메서드Thread.threadId();  => 각 스레드에 대해 유일한 idThread.getName(); => 디버깅이나 로깅 목적으로 유용하다.Thread.getPriority();  => 스레드 우선순위 1이 가장낮음 10이 가장높음 기본값: 5 set 메서드를 가지고 우선순위를 변경할 수 있다.스케줄러가 따져보고 결정한다. *실제 실행 순서는 JVM 구현과 운영체제에 따라 달라질 수 있다.Thread.getThreadGroup(); =>   스레드 그룹은 하나의 그룹으로 묶어서 일괄종료, 우선순위 설정을한다.*부모 스레드* : 새로운 스레드를 생성하는 스레드를 의미한다.Thread.getState(); => 스레드 상태new , runnable, bolcked, waiting, tim..

JAVA 2025.02.08

태태개발일지 - 멀티쓰레드

자바 메모리 구조메서드영역: 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다.클래스 정보, static, 런타임 상수 스택영역: 자바 실행 시 스택이 생성된다.스택 프레임: 스택 영역에 쌓이는 네모 박스 하나가 스택 프레임이다 힙영역: 객체와 배열이 생성되는 영역. 가비지 컬랙션이 이루어지는 주요 영역. 스레드 생성1. Thread 상속public class HelloThread extends Thread{ @Override public void run(){ System.out.println(Thread.currentThread().getName()+":run()"); }} .run은 호출하지 말기 : 하단의 이유 제시 .star..

JAVA 2025.02.05

태태개발일지 - RateLimiter

Guava RateLimiter Google의 Guava RateLimiter는 초당 몇 개의 요청을 처리할지 결정하는 라이브러리이다.ex) 1초에 최대 5개의 요청만 허용 같은 제한을 쉽게 설정할 수 있다.  기본기능타입메서드설명static RateLimitercreate(double permitsPerSecond)입력받은 "초당 허용량"을 가진 RateLimiter생성doubleacquire()1회 허가 요청 후 요청이 승인될때 까지 대기  RateLimiter rateLimiter = RateLimiter.create(2);for (int i = 0; i  초당 횟수를 정해놓고 rateLimiter.acquire();로 시간을 조절해서 요청을 처리하는 것이다. => 이 개념이 헷갈려서 계속 찾아봤음..

보안 2025.02.02

태태개발일지 - 머신러닝

데이터 전처리데이터 분석 및 머신러닝 모델링을 위해 데이터를 준비하는 과정.  원시 데이터는 종종 불완전하거나, 노이즈가 많거나 형식이 일관되지 않아 직접 모델링에 사용하기 어렵다. 데이터 전처리는 데이터의 품질을 올린다.  1. 결측값 처리: None , null 데이터가 들어가있다는 뜻이다.삭제: 행이나 열 삭제대체: 평균,중앙값으로 바꿔버린다.예측: 예측하고, 채웁니다. 2. 이상값 처리: 값 자체가 이상한경우 ex) 사람키가 270이 넘는경우제거: 제거변환: 상한선 하한서으로 대체IQR방법: 이상치를 발견하는 방법(특정범위를 잡아놓고 범위가 넘어가는 것을 이상값이라고 처리) 3. 중복데이터 제거: 동일한 데이터가 여러번 나타나는 경우 ex) 개,고양이 사진을 넣는데 개가 99%고 고양이가 1%일경..

카테고리 없음 2025.01.30

태태개발일지 - 김영한의 실전 자바 - 고급편

멀티태스킹과 멀티 프로세싱 멀티태스킹프로그램의 실행  프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)하는 일이다.  코어가 하나있어도, 실행 시간을 분할하여 마치 동시에 실행되는 것 처럼 하는 기법을 시분할 기법이라고한다.: 실제로 동시에 실행되는게 아니라 일정한 원리를 통해서 번갈아가 면서 실행한다.이것을 운영체제가 결정하는(스케줄링) 이라고 한다. 멀티프로세싱 코어가 여러개일때?cpu안에는 실제 연산을 처리할 수 있는 코어라는 것이있다.tip. 요즘은 cpu안에 2개이상의 코어가 들어가있다. 2개가 일정한 원리를 가지고 수행하면 더 빠르다. 멀티 프로세싱:cpu를 사용하여 동시에 여러가지 작업을 수행.하드웨어 기반으로 성능 향상다중 코어 프로세서를 사용하는 현대 컴퓨터 시스템  멀티 테스킹..

JAVA 2025.01.30

태태개발일지 - [스파르타코딩클럽 후기]실무에 바로 쓰는 바닥부터 시작하는 머신러닝

수강 내용(실무에 바로 쓰는 바닥부터 시작하는 머신러닝)머신러닝 컴퓨터가 명시적으로 프로그래밍 되지 않아도, 데이터를 통해 학습하고 예측할 수 있도록 하는 기능. (AI일부분의 알고리즘이다.)최근에는 딥러닝을 많이사용한다. 하지만 딥러닝도 머신러닝의 일부분이다.ex) 스스로 규칙과 논리를 학습하고 결과를 도출해 낸다. 오해하는부분 코딩없이 가능하다?X 규칙과 논리를 스스로 찾는것이지 그 찾는 것은 프로그래밍해야한다.  인공지능 -> 가장 큰 범위(스스로 생각할 수 있는 프로그래밍) 머신러닝은 그중에 하나이다.또 딥러닝과 강화학습은 머신러닝의 부분이다. 지도학습 비지도학습 강화학습 머신러닝의 역사과거에 머신러닝을 활용하지 못했던 이유 근본적인 문제: 데이터가 굉장히 많이 필요했었다. 데이터의 질과 양이 필..

Python 2025.01.29

태태개발일지 - redis

인덱스 DB글에서 많이 다룬 부분이다.책에 책갈피를 끼고 책의 페이지를 검색하는 것과 유사하다고 보면된다.  이번 프로젝트에서 확인해야할 부분은 기존 vs 인덱스 vs 캐시 성능의 차이를 확인하는 것이였다. 우선 테스트의 결과는 하단에서 다루고, index를 설정하면서 생각했던 부분을 설명하고자 한다. QuerySELECT *FROM Screenings sINNER JOIN Movies m ON s.movie_id = m.movie_idINNER JOIN Theaters t ON s.theater_id = t.theater_idWHERE m.title = 'Movie Title 378' AND m.genre = 'ACTION'ORDER BY m.release_date, s.screening_date; ..

Spring/Redis 2025.01.27

태태개발일지 - redis

근황 오랜만에 다시 글을 작성하게 되었다.회사일이 바빠지기도 했고, 영어시험, spring boot 공부, 항해 redis, AI준비 등다양한 것을 조금씩 준비하다보니 글을 작성할 시간이 부족했다.(사실 쓰려면 썼음)     멀티모듈데이터 베이스 설계부터 시작했는데. 이 부분은 DB부분에 DB설계하는 부분에 내용을 작성해 놓았다. 우선 멀티 모듈을 설계하기 위해서 선택해야할 것은 두가지였다. 1. domain 별 모듈로 설정.2. Architecture 별 모듈로 설정. 나는 2번을 골랐다.  이유: 원래 Spring 프로젝트를 할 때 계층별로 묶어서 객체지향적으로 프로젝트를 하는 것을 선호 하기 때문이다.2번을 실행하면 Architecture구조는 "clean + Layered Architecture"..

Spring/Redis 2025.01.27
반응형