전체 글

Database/PostgreSQL

[PostgreSQL] pg_stat_statements 설정

pg_stat_statements는 postgresql의 확장 모듈로 쿼리 실행 통계를 추적하기 위해 사용한다. 이 모듈은 추가 공유 메모리가 필요해서 postgresql.conf 파일에서 shared_preload_libraries에 pg_stat_statements를 추가해준 후 재시작하면 된다. 우선, 확장 모듈 설치한다.CREATE EXTENSION pg_stat_statements; postgresql.conf 파일은 환경을 어떻게 구성하는지에 따라 다르기에 명확하게 말할 수 없지만, 아래 명령어로 찾아보자which postgresql.conf 아래처럼 수정한다.# retrieved postgresql.conf fileshared_preload_libraries = 'pg_stat_stateme..

카테고리 없음

[Laravel] API 연동

[Laravel 12] 소셜 로그인 완벽 가이드: 구글, 카카오, 네이버 연동하기 (Socialite)현대적인 웹 애플리케이션에서 소셜 로그인은 선택이 아닌 필수입니다. 사용자의 회원가입 장벽을 낮추고 접근성을 높일 수 있기 때문입니다.이번 포스트에서는 Laravel 12의 공식 패키지인 Laravel Socialite와 커뮤니티 드라이버를 활용하여 한국에서 가장 많이 사용되는 구글(Google), 카카오(Kakao), 네이버(Naver) 로그인을 한 번에 구현하는 방법을 단계별로 알아보겠습니다.1. 사전 준비 및 패키지 설치Laravel은 소셜 로그인을 위해 Socialite라는 강력한 패키지를 제공합니다. 구글은 기본 지원되지만, 카카오와 네이버는 Socialite Providers라는 커뮤니티 패키..

Programming/Spring | Spring-Boot

@Builder와 생성자 충돌

@Builder를 사용하면서 생성자를 찾을 수 없다는 오류를 발견해서 이것저것 찾아본 내용을 정리한다. @Builder 내부 동작@Builder를 클래스에 붙이면 Lombok은 빌더 클래스를 자동 생성하고, build() 메서드 안에서 대상 객체를 생성하는 코드를 넣는다. 클래스에 빌더 어노테이션을 두면 필드 전체를 받는 생성자를 호출하게 된다.@Builderpublic class Member { private Long id; private String username; private String password;}public Member build() { return new Member(id, username, password);} 위 코드에서 아무런 생성자도 없고, 생성자와 ..

Programming/Java

[자바성능튜닝] String을 거부하는 이유

데이터를 처리하다 보면 너무 자주 나오는 데이터 타입 중에 하나가 String이다. 너무나도 익숙하지만, 제대로 사용하지 못하면 치명적인 성능저하로 이어지기 쉽다. 이번 장에서는 String을 쓰면 안 되는 이유와 써야 한다면 어떻게 써야 하는지를 본다. String을 사용하면 어떻게 되나?String 객체는 불변 객체로 String 타입의 변수에 저장된 값은 String 타입의 데이터를 가리키는 주소이고, 실제 데이터는 별도로 존재한다. 그리고 새로운 데이터를 넣을 시 기존에 데이터가 수정되는 것이 아닌, 새로운 String 객체를 생성해서 처리하게 된다. 위 String 정의에 따르면 아래의 코드를 실행 했을 때 1000개의 String 객체를 메모리에 적재가 되고, 불필요한 객체에 대해서 GC가 처..

Programming/Java

알아두면 언젠가 쓸지도 모를 System 클래스...ing

static void arraycopy()public class SystemArrayCopy { public static void main(String[] args) throws Exception{ String[] arr = new String[]{"AAA", "BBB", "CCC", "DDD", "EEEE"}; String [] copiedArr = new String[3]; System.arraycopy(arr, 2, copiedArr, 1, 2); for(String s : copiedArr){ System.out.println(s); } }}

Programming

[자바성능튜닝] 프로그램 속도 측정

시스템의 성능이 느릴 때 가장 먼저 병목 지점을 파악해야 한다. 그러기 위해서 사용해야 하는 것이 툴이다. 책에서 언급된 자바 환경을 위한 툴은 프로파일링, APM이 대표적이라고 한다. 프로파일링 툴프로파일링 툴은 이해하기 편하게 말하면 성능측정 도구라고 할 수 있다. 운영 서버를 진단 및 모니터링하기 위해서 사용한다. 많이 사용하는 툴로는 APM(Application Performance Monitoring)이 있다. 국산 APM에는 미소 정보사의 WebTune, 케이와이즈사의 Pharos, 외국산은 CA Wily의 Introscope, Compuware의 dynaTrace 등이 있다. 구분특징프로파일링 툴- 소스 레벨의 분석을 위한 툴- 애플리케이션의 세부 응답 시간까지 분석 가능- 메모리 사용량을 ..

seandoesdev
To get a Lemonade