일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹사이트성능
- 자바스크립트
- 페이스북 번역
- Java
- 카프카 트랜잭션
- kafka
- 디자인패턴
- git
- JPA
- Design Pattern
- 도메인 주도 개발
- gcm 푸시 번역
- graphql
- php
- 푸시 번역
- notification
- 웹사이트최적화기법
- nginx
- GCM
- 푸시
- Push
- 성능
- 웹사이트 성능
- nginx설정
- GCM 번역
- APNS
- 카프카
- ddd
- nginx설치
- Today
- Total
목록Framework (12)
간단한 개발관련 내용
코틀린 언어 기반으로 JPA 엔티티의 id 필드를 생성자에 포함시키는 방식과 별도로 필드로 선언하고 protected set을 사용하는 방식은 몇 가지 차이점이 있습니다. 각각의 장단점과 사용 사례를 비교해보겠습니다.1. id를 생성자에 포함시키는 방식@Entitydata class Car( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, val brand: String, val model: String)특징불변성: val로 선언되므로 생성 후 값이 변경되지 않아 객체가 불변(immutable)에 가까워집니다.초기화 간결성: id 필드도 생성자에서 초기화되므로 Kotlin의 데이터 클래스..
Netty를 프레임워크로 간주해야 하는지, 아니면 라이브러리로 간주하나?Netty: 프레임워크 vs. 라이브러리프레임워크와 라이브러리의 차이점먼저, 프레임워크와 라이브러리의 기본적인 차이점을 이해하는 것이 중요합니다.라이브러리 (Library):사용자 주도: 개발자가 필요할 때 특정 기능을 호출하여 사용하는 방식입니다.유연성: 원하는 기능만 선택적으로 사용할 수 있으며, 애플리케이션의 전체 구조에 대한 강제성이 낮습니다.예시: jQuery, Lodash, Apache Commons 등.프레임워크 (Framework):프레임워크 주도: 프레임워크가 애플리케이션의 전체 구조와 흐름을 제어하며, 개발자는 프레임워크가 제공하는 구조에 맞춰 코드를 작성합니다.의존성 역전: "제어의 역전(Inversion of C..
Netty는 네트워크 애플리케이션 개발에 널리 사용되는 고성능 비동기 이벤트 기반 프레임워크로, 다양한 프로토콜을 지원하며 높은 확장성과 유연성을 제공합니다. 아래에서 Netty의 정의부터 주요 특징, 장점, 사용 사례 등을 순차적으로 살펴보겠습니다. 1. Netty의 정의Netty는 자바 기반의 비동기 이벤트 드리븐 네트워크 애플리케이션 프레임워크로, 고성능 프로토콜 서버 및 클라이언트를 손쉽게 개발할 수 있도록 도와줍니다. Netty는 다양한 프로토콜(예: HTTP, WebSocket, TCP, UDP)을 지원하며, 확장성이 뛰어나고 높은 처리량을 자랑합니다. 주로 대규모 네트워크 애플리케이션, 실시간 통신 시스템, 게임 서버, 메시징 시스템 등에서 활용됩니다.2. Netty의 주요 특징비동기 및 이..
JPA(Java Persistence API)의 개요JPA(Java Persistence API)는 자바 애플리케이션에서 객체와 관계형 데이터베이스 간의 매핑을 처리하기 위한 표준 ORM(Object-Relational Mapping) 프레임워크입니다. JPA는 자바 객체와 데이터베이스 테이블 간의 매핑을 정의하여, SQL을 직접 작성하지 않고도 데이터베이스와 상호작용할 수 있게 해줍니다. EJB 3.0의 일부로 도입되었으며, 현재는 자바 표준 ORM 기술로 자리 잡았습니다.JPA는 인터페이스로만 구성되어 있으며, 실제 구현은 Hibernate, EclipseLink, DataNucleus와 같은 JPA 구현체에 의해 이루어집니다. 즉, JPA는 데이터베이스와 상호작용하는 표준 인터페이스를 정의할 뿐이고..
Datasource의 pool 관련 기본적인 아래의 설정들을 하게 된 후 실제 서비스에 적용하게 되면 몰려드는 요청 및 처리 시간 때문에 예상치 못한 문제들을 확인하게 됩니다.datasource.driverClassName=com.mysql.jdbc.Driverdatasource.url=datasource.username=datasource.password= 보통 요청에 대한 pool 을 관리하기 위해 개수를 조정하게 됩니다.datasource.initialSize=4 # 커넥션 초기값datasource.minIdle=4 # 유휴상태로 있을 수 있는 커넥션 최소값datasource.maxActive=16 # 커넥션 최대값datasource.maxIdle=16 이러고 나면, DB 와의 연결 관련 문제들이 ..
스프링에서는 포괄적인 캐시 추상 인터페이스를 이용하여, ehcache를 구현할 수 있습니다. (3.1부터? 2.5부터?)그래서 메소드에 어노테이션으로 @Cacheable 이나 @CacheEvict 와 같이 코드에 추가하여 개발자로 하여금 쉽게 사용할 수 있게 하고 있습니다. 하지만 당연하게도 어노테이션만으로 구현되지는 않으나 기본적인 추가내용이 어렵지는 않습니다.아래의 단계를 거치면 기본적인 cache 구현을 사용할 수 있습니다. 1. dependency 추가A. gradle compile('net.sf.ehcache:ehcache') B. mavennet.sf.ehcache ehcache 2.10.4 2. ehcache.xml 생성 3. CacheManager config 생성@EnableCaching..