반응형

daily 40

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

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

Spring redis 총정리

- Cache - LocalCache   ex) ehcache     - 로컬 캐시는 애플리케이션 내부에서만 유효하며, 동일한 어플리케이션 내의 여러 모듈이나 서비스 간에 공유하지 않는다.     - 메모리 내에 데이터를 저장하므로 매우 빠른 읽기 및 쓰기 성능을 제공한다.     - 로컬 캐시는 애플리케이션의 JVM 내부 또는 로컬 서버에 저장되며 외부에서 접근 할 수 없다.  - global cache.  ex) redis      - 글로벌 캐시는 여러 서버 또는 애플리케이션 간에 데이터를 공유할 수 있다.      - 글로벌 캐시는 주로 네트워크를 통해 데이터에 접근해야하므로 로컬 캐시에 비해 상대적으로 느린 읽기 및 쓰기 성능을 가질 수 있다.      - 글로벌 캐시는 주로 네트워크를 통해 외..

Spring/Redis 2024.05.27

태태개발일지(index)

@Entity @Table(name = "user_table", indexes = { @Index(name = "idx_name", columnList = "name") }) //@Table(name = "user_table") 데이터베이스에서 index를 만들면 B+ Tree 구조로 저장이되고, 인덱스테이블을 사용하면 insert, update,delete가 있어서 추가 쿼리가 생기지 않는 이상, 조회상태에서는 성능이 향상 된다고 알 게 되었다. 또 궁금한 것은 못참는 내가 Database에서 userTable을 만들고 안에 name이라는 속성으로 index를 만들고, spring과 연결 시켜서 Jmeter로 성능을 실험해보았다. 결과: 유저 데이터 30000개 정도는 속도차이가 별로 크게 나지않는다...

DATABASE 2023.09.24

72일차 회고

오늘은 git에 관련하여 프로젝트 시작전 간단한 git협업에 대해서 공부했다.git issue를 통해서 내가 해야할 일 들을 detail하게 적어놓거나, 마일드 스톤으로 기한이나 큰 범위를 잡아서 git issue를 담는 연습을 했고,여러가지 git branch들을 만들어서 main으로 pull request하는 연습을 해보았다.  그리고 예행연습으로 Controller쪽을 만지다가.. JPA 1:N관계에 대해서 만지다 일이 터졌다..아니 왜 Mapper struct를 사용해서 분명 자동으로 할텐대 PK인 Longtype TodoId를 PostDTO에 넣고 보냈는데 웬걸?mapper가 자동으로 매핑해서 넣어주지 않는 것이였다.. 약 한시간동안 서칭과 계속 탐구를 통해 나의 너무 큰 실수였던 것.. 분명 ..

70일차 회고

오늘은 교육이 모두 마무리 되었고, 아직 AWS와 Docker부분에 대한 회고를 올리지 못했다. 이제 실제  pre-project에 들어가게 되었고, 학교 졸업작품인 캡스톤도 중반을 달리고 있다. 학교 시험도 거의 다 마무리가 되어서, 이제 정보처리기사 실기를 다시 준비해야 한다고 생각한다. 지금 까지 달려오면서 초반에는 많이 힘들었지만, 쉬는 것도 많이 쉬었지만, 9-6를 지켜서 공부하는 습관을 들였기 때문에 만족스러운 3달이였고, 점차 자기주도학습이 잡혀가는 듯한 느낌을 받아서 기분이 좋아졌다. TODO 6월달에 해야하는 것의 목록이다.6/8일 pre-project 시작캡스톤 프로젝트 핵심기능 구현하기정보처리기사 실기 준비하기처음부터 코딩테스트 다시 준비하기6/28~6/30 해커톤 대회 준비하기토비의..

51일차 회고 Spring security

아 정말 spring공부하면서 가장 어려웠던 부분이라고 생각한다.. Ytube도 봐보고 google 서칭도 해보면서, 얼추 개념확립만 한 상태로블로깅을 해보려고 한다.  spring boot를 통해 프로젝트를 구현할 때 회원을 등록하는 코드도 있고, 데이터 베이스를 통해서 회원의 정보를 가져오는 코드를 만드는 경우가 있다. 하지만 보통 프로젝트라면 정해진 기능이 있을 것이고, 관리자와 사용자등 역할이 나눠져 있을 것이다. 그래서 각각 회원마다 인가--> 역할을 정해주는 것과, 회원이 맞는지 인증하는 로그인 기능이 필요함을 느꼈다. 이를 대신 해주는 것이 spring security이다. implementation 'org.springframework.boot:spring-boot-starter-secur..

N13223

https://www.acmicpc.net/problem/13223 현재 시간과 나중 시간의 차가 얼마나 나는지 구하는 코드로 String 형식으로 된 시간을 split을 통해 정수로 바꿔주었고, 총시간을 초로 계산해서 hour*3600+min*60+sec으로 바꿔주었고, 그 둘의 차이를 통해서 다시 변환해 정답을 구했다. package main.java.BAEKJOON.bronze; import java.util.Scanner; public class N13223 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String currentTime = sc.next(); String afterTime = sc.n..

코테/백준 2023.05.17

40 회고

오늘은 spring project 배포에 대해서 정리해 보겠다.intelij IDE를 통해서 빌드하는 방법은 우측에 있는 Gradle버튼을 통해서 bootjar or build를 누르면 jar파일로 압축이 되게된다. bootjar은 실행 가능한 Jar만 만들고 build는 거의 모든 task를 실행 시킨다고 보면된다.boojar 실행가능한 jarbuild빌드와 관련된 모든 task를 실행이제 이렇게 만든 jar는 폴더하위에 있는 build 폴더안에 있는 lib로 경로를 맞추고 java -jar ~~~.jar을 통해 실행 시킬 수 있다. 여기서는 profile 개념이있는데 , 서버와 로컬 등 여러가지 상황에 따라서 다른 환경을 사용할 수 있는데 이것을 profile로 정할 수 있다. application...

37(테스팅과 API document작성)

또 google로 들어갔을 때 Tistory not found가 뜬다  그래서 bing으로 들어기 글을 쓰게 되었다 ,,,앞서서 단위테스팅과, 기본 @Springboottest를 통하여 간단한 API계층 테스트를 알아 보았다, 이제는 Mockito를 사용하여 가짜 Mock을 통해서 가짜 의존성을 주입해 주는 것을 통한 테스팅을 해볼 것 이고, 이를 통해서  API document까지 한번에 작성하는 spring restdocs까지 알아볼 것이다. 만약 membercontroller에서 member에 정보를 저장하는 createMember의 메서드의 기능을 테스트하고 싶다고 했을 때 @WebMvcTest@AutoConfigureMockMvcclass MemberControllerMockTest { @..

32~34

오늘은 JPA Spring boot의 핵심기능에 대해서 정리해 보고자 한다.기존 JDBC Spring JDBC등 Spring의 Repository역활을 하는 데이터베이스 기술들이 있지만, 요즘의 대세는 JPA기술이라고 한다.즉 JPA는 ORM기술로 데이터베이스로 연동할때 객체를 중심으로 연동하는 기술이다. 즉 클래스를 테이블로 인식하고 연동하는 기술이다. JPA의 P는 영속성을 뜻하는데 이것은 entitymanger을 통해서 확인할 수 있다. ORM은 객체(Object)와 데이터베이스 테이블의 매핑을 통해 엔티티 클래스 객체 안에 포함된 정보를 테이블에 저장하는 기술입니다.JPA에서는 테이블과 매핑되는 엔티티 객체 정보를 영속성 컨텍스트(Persistence Context)라는 곳에 보관해서 애플리케이션..

반응형