일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자동화워크플로우
- n8n
- 티스토리챌린지
- STOMP
- QA
- 프로세스와스레드의차이
- 하이브리드접근법
- nplus1
- kafka배포
- 엘라스틱서치
- 오블완
- 한화시스템부트캠프
- 테스트케이스
- JPA
- 자료구조
- 프로토콜역할
- Java
- N+1문제
- 스프링시큐리티
- 헥사고날아키텍처
- Kafka
- XSS
- jwt토큰
- springboot
- 자바
- 부트캠프
- 오버로딩
- 메소드
- 캐시의 작동 원리
- selenium
- Today
- Total
목록Java (5)
아쿠의 개발 일지
멀티쓰레드 환경에서 동시성 제어는 중요한 이슈입니다. Spring Boot 애플리케이션에서 여러 사용자의 요청이 동시에 처리될 때, 올바른 데이터 일관성을 유지하기 위해 적절한 동시성 제어 기법을 적용해야 합니다. 이번 글에서는 synchronized, Lock, Atomic 클래스를 활용한 동시성 제어 방법을 비교하고, 각각의 장단점을 알아보겠습니다. 1. 동시성 제어가 필요한 이유멀티쓰레드 환경에서는 여러 개의 쓰레드가 동시에 공유 자원에 접근할 수 있습니다. 이때 동기화 처리를 하지 않으면 데이터 무결성이 깨지거나 레이스 컨디션(Race Condition) 문제가 발생할 수 있습니다. 예를 들어, 아래 코드를 살펴봅시다. @RestController@RequestMapping("/counter")p..

1. 객체지향의 핵심 개념 다들 개발을 시작하면서 객체지향 프로그래밍에 대해 많이 들어봤을 것이다.객체지향 프로그래밍은 데이터를 객체로 모델링하고, 객체 간 상호작용으로 프로그램을 구성하는 방법이다.Java는 대표적인 객체지향 언어이다. 그 중 4대 핵심 개념이 있는데1. 캡슐화 (Encapsulation)데이터를 클래스 내부에 감추고, 외부에는 필요한 기능만 노출하는 방식이다. 2. 상속화 (Inheritance)기존 클래스의 속성과 메서드를 재사용하여 새로운 클래스를 만드는 것이다. 3. 다형성 (Polymorphism)하나의 메서드가 다양한 클래스에서 다른 동작을 하도록 구현하는 방식이다. 4. 추상화 (Abstraction)불필요한 세부 사항을 숨기고 필요한 것만 드러내는 설계 방식이다.2. Sp..

메소드 오버로딩? 같은 이름의 메소드를 중복하여 정의하는 것을 의미한다.자바에서는 원래 한 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없다. 하지만 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 작성할 수 있다.왜 이런 귀찮은 걸 쓰냐.추가를 하는 메소드를 여러개 만들어야 하는데, 그때마다 add01 , add02 이렇게 할 수는 없지않냐,,,add 라는 메소드에 매개변수나 타입을 다르게 지정해서 활용을 하는 것이다.이는 객체 지향 프로그래밍 특징 중 하나인 다형성을 구현한 방법 중 하나이다. 이를 활용하여 1번 코드를 2번으로 refactoring 한 것에 대해서 보여드리겠다,,,현재 잔액에서 입금과 출금을 하는 것이다.package method.ex;public class ..

https://www.acmicpc.net/problem/9498 문제 풀이 방법은 Sanner로 입력 받아서 연산을 했다.Sanner 활용 방법을 분명 배웠는데 까먹어서 다시 공부했다.Scanner sc = new Scanner(System.in);int A = sc.nextInt(); 기본적으로 객체를 생성하는 방법은클래스이름 객체이름 = new 클래스이름(); 우리가 입력을 하기 위해서 Scanner을 쓰는 것이고, 쓴 값을 스캔하여 컴퓨터에게 전달을 해준다.괄호 안에 System.in을 써줘야 하는데, 이유는 사용자로부터 입력을 받기 위한 입력 스트림이기 때문이다.다양한 Sanner의 종류들이 있지만 점수를 입력해주는 문제이기 때문에 int형 입력이 필요해서 sc.nextInt() 를 썼다. i..

Thread란?프로세스 안에서 실질적으로 작업을 실행하는 단위를 말하고, 프로세스에는 적어도 한 개 이상의 스레드가 있다고 한다. Main 스레드 하나로 시작하여 추가 생성하게 되면 멀티 스레드 환경이 된다.이러한 스레드들은 프로세스의 리소스를 공유하기 때문에 효율적이긴 하지만 개발자들에겐 문제가 많다고 한다. 일단 대충 연습을 해 보기 위해서 Ex001이라는 예제 Class를 만들었다. 그러곤 Thread1과 Thread2를 만들어서 Thread1은 Thread를 상속 받게 해 주고Thread2는 인터페이스로 구현하기 위해 Runnable을 쓸 것이다.Runnable은 시간 메소드를 구현 해야 에러가 나지 않는다. public class Thread1 extends Thread{ // 얘는 상속 ..