반응형

분류 전체보기 256

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

자바 메모리 구조메서드영역: 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다.클래스 정보, 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

태태개발일지 - 레코드

레코드토비의 스프링을 수강하는데 레코드를 사용하여 궁금해서 서칭해봤다.  자바에서 레코드란?  불변객체이다.  불변객체를 만들 때1. getter()2. setter()3. 생성자4. toString 두가지의 속성만 가지는 클래스를 생성하려고 해도,  너무나 많은 코드가 필요하다 이를 Boilerplate Code 가 많다. 라고한다.  Boilerplate Code과거 신문사에서 신문마다 강철로 찍어내는 것을 뜻하고 (자주 반복되는 코드)를 의미힌다. 레코드 사용이유 필드값 추가시 보일러코드 수정이 일어난다. 레코드 사용예시선언동시에 사용할 필드값을 사용해야한다.정적필드는 사용가능. public record Person(String name, int age) {} 데이터를 get 할 때. person...

JAVA 2024.12.25

태태코딩 - 객체지향 원칙

객체지향 1원칙 : 협력에 필요한 행동을 먼저 결정하고, 행동에 적합한 객체를 나중에 선택하라.2원칙 : 객체의 행동을 먼저 구현하고, 행동에 필요한 데이터를 나중에 선택하라.  절자적인 설계의 문제점 1. 프로세스와 데이터를 나누어서 설계한다. 2. 모든 상황의 getter와 setter를 설정해야했다. ex) 1. 프로세스와 데이터를 나누어서 설계한다는 뜻의 예reservation service 에서 예약이라는 행동을 하기위해서 주문 정보와 여러가지를  가져오게 되는데. 만약 reservation service에서 주문의 총 가격을 계산한다거나, 단순히 예약에 관한 메서드가 아닌, 모든 프로세스가 따로 만들어진다면, 유지보수가 힘들어진다.  유지보수가 힘들어지는 이유: 이를 절차적인 프로그래밍이라고 ..

객체지향 2024.12.25

태태코딩 - 영속성 컨텍스트

영속성 컨텍스트간단하게 요약해서 작성하자면. 가장 잘 정리된 사진인거같아서 퍼온다.   보통 JPA를 사용하면 EntityManger에 대해서 모르고 자동으로 사용하는 사람들이 많다.하지만 EntityManger를 알아야 JPA를 더 효율적으로 사용할 수 있다.  위의 흐름을 보면  JPA를 사용하면서 java.class로 Entity를 만들고 Entity Manager Factory를 통해 Entity Manager 생성 EntityManger를 통해서 Entity를 관리 Persistance Context에서 관리 Persistence Unit은 DB연결에 대한 설정으로 .XML로 사용해야 했지만, 요즘은 .프로퍼티(.property), .야믈(yaml) 파일에 datasource, user, pas..

Spring/JPA 2024.12.21
반응형