본문 바로가기
728x90
반응형

분류 전체보기279

[JavaScript] 옵셔널 체이닝과 논리 연산자로 객체 값 안전하게 다루기 코드를 작성하다 보면 if, if, if.. null & undefined 처리를 일일이 작성하다 보면 코드가 더러워지고 가독성도 떨어지게 된다. 이를 해결하기 위한 수단으로 옵셔널 체이닝과 논리 연산을 활용할 수 있다. 1. 옵셔널 체이닝 ( ?. )용도: 객체나 배열에서 중첩된 속성에 접근할 때, 해당 경로 중간에 null 또는 undefined가 있을 경우 에러를 방지한다.특징:중간 단계에서 null 또는 undefined일 경우 바로 undefined를 반환.객체 접근에 안전하게 사용.예제:const obj = { a: { b: null } }; console.log(obj?.a?.b); // null console.log(obj?.a?.c); // undefined console.log(obj?.. 2024. 12. 21.
[SpringMVC] @Value로 Static 변수에 값 주입할 수 있을까? Spring에서 @Value 어노테이션은 application.properties와 같이 프로퍼티에 정의된 값을 주입하는데 사용된다.@Value 어노테이션 사용 방법.propertiesapp.name=MyApplicationapp.version=1.0.0  .java@Componentpublic class AppConfig {    @Value("${app.name:default}")    private String appName;    @Value("${app.version:0}")    private String appVersion;}보통 이렇게 @Value 형식에 맞춰 properties 값을 주입하여 주면 간단히 사용할 수 있지만 한 가지 주의할 점이 있다.@Value로 값을 주입할 변수가 sta.. 2024. 12. 10.
[SpringFramework] 서비스 중인 WAS 트러블슈팅 (with. Spring) WAS에서 에러가 발생하는데 GlobalException으로 잡히거나 Elastic의 HighLevel 클라이언트를 쓰는 경우 정확한 에러 파악이 어려울 수 있다 서버에서 발생한 에러 로그를 보고 파악하는 것이 가장 빠르고 간단한 방법이지만 에러 로그만으로 파악이 어려운 상황이 많고, 서버와의 환경이 달라 로컬(IDE)에서는 에러가 재현되지 않는 경우도 있다.서버 에러 확인 방법1. 에러가 발생하는 메서드의 에러 처리 (try/catch)를 제거한다.try {}catch(Exception e) {}2. log.debug()로 에러 발생이 의심되는 (Http 호출 등) 지점들에 로그를 찍는다log.info("호출 전 카운트 값 : {}", count);// 에러 의심 지점log.info("호출 후 카운트 .. 2024. 12. 9.
[PostgreSQL] 데이터베이스 서버 보안 취약점 방지 실제 운영중인 서비스에서 데이터베이스의 보안은 매우 중요한 문제이므로 보안 관련 설정을 적용하여 취약점을 미리 방지하는 것이 좋다.  PostgreSQL은 데이터베이스 보안을 강화하기 위해 다양한 설정과 기능을 제공한다. 특히 서버 설정 파일을 통해 암호화를 적용하고 안전한 인증 방식을 사용할 수 있다. 이 글에서는 PostgreSQL의 pg_hba.conf 파일을 중심으로 hostssl 및 scram-sha-256 설정 방법과 관련 정보를 다룬다. pg_hba.conf 파일 개요경로: /var/lib/postgresql//main/pg_hba.conf역할: PostgreSQL의 호스트 기반 인증(HBA, Host-Based Authentication) 방식을 정의하며, 클라이언트 접속을 제어한다. 1... 2024. 10. 22.
[Tomcat] 네트워크 설정으로 서버 성능과 보안 향상시키기 WAS로 가장 많이 사용되는 톰캣의 네트워크 설정에 대해 알아보자  톰캣의 네트워크를 설정하려면 server.xml 파일을 확인해야 한다.[Tomcat 설치 경로]/conf/server.xml server.xml 파일은 서버 설정을 관리하는 핵심 구성 파일 중 하나이며 그 중 태그는 클라이언트와 서버 간의 연결을 관리하는 역할을 한다. 는 특정 프로토콜(HTTP, HTTPS, AJP 등)에 따라 클라이언트 요청을 처리하는 포트를 지정하며, 다양한 속성을 통해 성능, 보안, 기타 여러 항목을 세밀하게 조정할 수 있다.  SSL을 통한 HTTPS 설정 예시위와 같이 SSL을 적용해야 한다던가 네트워크 관련 설정을 변경해야 할 경우 이런 식으로 다양한 속성들을 활용하여 설정해줄 수 있다. Connector .. 2024. 10. 22.
[PostgreSQL] File로 간단하게 DB Table 백업하기 개발하다 데이터를 잠깐 백업해야 하는데 pg_dump..등 사용하기 귀찮을 때 간단하게 백업하는 방법  1. 테이블 데이터 백업하기 (Backup)PostgreSQL에서 COPY + TO 명령어를 사용하여 테이블 데이터를 파일로 백업할 수 있다.#COPY {schema.table} TO '{backup_path}' DELIMITER ',' CSV HEADERCOPY test.user TO '/path/to/backup/user.csv' DELIMITER ',' CSV HEADER;  2. 백업 데이터 복구 (Restore)백업된 CSV 파일을 다시 테이블로 복구하려면 COPY + FROM 명령어를 사용하여 데이터를 복구할 수 있다.# COPY {schema.table} FROM '{file_path}' .. 2024. 10. 22.
[Linux] 노트북으로 개인 Linux 서버 만들기 백엔드 개발자로 살다보면 서버가 필요한 경우가 많은데 그럴 때 마다 AWS를 사용하기에는 비용적인 부담이 크다.. 남는 노트북(PC)이 있다면 직접 서버를 만들어 사용하면 된다.  💡준비물 : 노트북, USB 혹시 이렇게 노트북 모니터가 깨져서 뽑아버렸다면 HDMI 케이블로 다른 모니터에 연결해주면 된다. ⏩️ 진행 단계 : Ubuntu 설치 - USB 부팅 디스크 만들기 - USB로 부팅 1. Ubuntu 설치*Ubuntu 말고 다른 배포판을 사용하고 싶다면 원하는 운영체제를 다운받으면 된다. 아래의 링크에서 Ubuntu Server 다운로드https://ubuntu.com/download/serverUbuntu Desktop도 있지만 서버로 사용할거면 굳이 GUI는 필요 없기 때문에 서버로 사용하는.. 2024. 10. 3.
[Java] MyBatis: ClassNotFoundException 트러블 슈팅 (JVM 네이밍 규칙) InnerClass 사용 시 Mybatis에서 ClassNotFound 에러를 발생시키는 원인인 JVM의 클래스 네이밍 규칙..? TDD 개발 중 Mybatis 매퍼 파일에 쿼리를 작성하여 실행했을 때 resultType으로 InnerClass인 Authority 클래스를 사용한 쿼리들에서 ClassNotFoundException이 발생했다. 이래서 테스트 주도 개발이 중요하다.... SELECT authority_id AS authorityId, authority_name AS authorityName, created_date AS createdDate FROM authorities Caused by: java.lang.ClassNotFoundException: Cannot find class: kr... 2024. 9. 18.
[Server] WebtoB(WEB) & Tomcat(WAS) 연동. with ReverseProxy WebtoB의 Reverse Proxy를 이용하여 외부 서버에 WebtoB를 두고 내부 서버에 WAS를 두어 연동하는 방식은 보안, 성능, 유지보수 측면에서 유리하기 때문에 많이 사용된다. WebtoB는 TmaxSoft에서 제공하는 고성능 웹 서버이다.WAS는 일반적으로 HTTP Listener를 가지고 있는데, WebtoB는 reverse proxy 설정을 통해 WAS의 HTTP Listener와 연결 을 맺어 연동하게 된다. WebtoB 라이센스 발급우선 WebtoB를 실제 운영 시스템에 사용하는 것이 아니라 학습 또는 테스트 목적으로 진행할 경우 데모 라이선스를 발급받아 일정 기간동안 무료로 사용할 수 있다.데모 라이선스는 제품 구입 전 테스트 및 검토를 위하여 제한된 기간 동안 발급받아 사용 가능.. 2024. 9. 18.
728x90
반응형