[IT Info] 시간복잡도 O(n) vs O(n^2): 데이터 크기가 달라지면 알고리즘의 성능은 어떻게 될까?
·
IT Information
1. 시간복잡도 O(n) vs O(n^2) : 데이터 크기가 달라지면 알고리즘의 성능은 어떻게 될까?코딩을 하다 보면 "시간 복잡도"라는 말을 자주 듣게 됩니다. 특히 O(n)과 O(n^2)는 가장 흔하게 접하는 개념이죠. 이 두 가지가 정확히 무엇을 의미하고, 왜 중요한지 간단히 알아볼까요?시간 복잡도, 왜 알아야 할까?시간 복잡도는 알고리즘의 성능을 평가하는 척도입니다. "입력 데이터의 크기(n)"가 커짐에 따라 알고리즘의 "실행 시간"이 얼마나 늘어나는지 수학적으로 표현한 것입니다. 간단히 말해, 데이터가 많아질 때 내 코드가 얼마나 빠르게 혹은 느리게 작동하는지 예측하는 데 도움을 줍니다. 2. O(n): 선형 시간 복잡도O(n)은 "선형 시간 복잡도"라고 부릅니다.특징: 입력 크기 n이 커지는 ..
[IT Info] Jar 파일, War 파일
·
IT Information
개발을 하다 보면 .jar와 .war라는 확장자를 자주 접하게 됩니다. 둘 다 Java 세계에서 중요한 배포 단위이지만, 언제 어떤 걸 써야 하는지 헷갈리기 쉽죠. 이번 글에서는 정의, 목적, 특징, 사용 방법, 차이점을 한눈에 정리해보겠습니다. 1. What is Jar File? JAR (Java ARchive) 는 Java 클래스 파일, 리소스(이미지, 설정파일 등), 메타데이터를 하나의 압축 파일로 묶어 놓은 패키지입니다. 쉽게 말하면 Java 프로젝트 실행 파일이라고 할 수 있습니다. 1) 목적 여러 .class 파일과 라이브러리를 하나의 실행 단위로 묶기 위함.다른 프로젝트에서 쉽게 재사용할 수 있도록 배포.라이브러리 관리 및 의존성 처리를 단순화.2) 특징 ZIP 포맷 기반(즉, unzip으..
[Web] 정적 서버와 동적 서버
·
Server/Web
웹사이트를 만들거나 서버를 운영하려는 사람이라면 한 번쯤 들어봤을 '정적 서버'와 '동적 서버'.하지만 이 두 개념이 정확히 어떤 차이가 있고, 어떤 상황에서 어떤 서버를 선택해야 할지 헷갈리는 경우가 많습니다.이번 글에서는 정적 서버와 동적 서버의 개념부터 실제 사용 예시, 장단점까지 쉽게 정리해 보겠습니다. 1. 정적 서버(Static Server)란?정적 서버는 말 그대로 변하지 않는(Static) 콘텐츠를 제공합니다.HTML, CSS, JavaScript, 이미지 등과 같이 파일이 서버에 그대로 저장되어 있고,사용자가 요청하면 해당 파일을 그대로 전달해주는 구조입니다. 1) 예시 HTML 파일을 직접 만들어서 index.html로 저장해둔 후, 사용자가 접속하면 그대로 보여주는 방식 2) 종류Ap..
[Java] SLF4J Logger(Simple Logging Facade for Java)
·
Java
1. SLF4J Logger란?SLF4J(Simple Logging Facade for Java)는 로그 시스템을 추상화한 인터페이스입니다.실제 로그를 출력하는 구현체(Logback, Log4j 등)를 교체하더라도, 코드를 수정하지 않고 사용할 수 있도록 도와주는 로깅의 통일된 표준 인터페이스입니다. 2. IntelliJ에서 SLF4J + Logback 설정 방법 Java 프로젝트에 SLF4J를 적용하기 위해 일반적으로 Logback이라는 구현체를 함께 사용합니다. 1) Maven 프로젝트일 경우 pom.xml에 다음 의존성을 추가합니다. org.slf4j slf4j-api 1.7.36 ch.qos.logback ..
[DB] 데이터베이스 파티셔닝(Partitioning)이란?
·
DB
1. what is Partitioning(파티셔닝)?대용량 데이터를 다루는 데이터베이스에서 성능 최적화와 관리 효율성을 위해 사용하는 대표적인 기법이 있습니다. 바로 파티셔닝(Partitioning)입니다. 하지만 파티셔닝이 항상 좋은 것은 아닙니다. 오늘은 파티셔닝의 개념부터 장점, 단점, 그리고 적용 시 고려해야 할 점까지 자세히 알아보겠습니다. 2. 파티셔닝의 장점✅ 성능 향상   - 특정 파티션만 조회하면 되므로 검색 속도가 빨라집니다. - 불필요한 데이터를 조회할 필요가 없어 쿼리 실행 시간이 줄어듭니다. ✅ 데이터 관리 용이   - 오래된 데이터를 손쉽게 삭제할 수 있습니다. - 특정 파티션만 백업 및 복구할 수 있어 유지보수가 편리합니다. ✅ 부하 분산   - 여러 디스크에 데이터를 분산 ..
[IT Info] VPN 연결 오류 해결: '원격 컴퓨터에 연결하지 못했습니다. 이 연결에 대한 네트워크 설정을 변경해야 합니다. '
·
IT Information
VPN 연동을 하는데 '원격 컴퓨터에 연결하지 못했습니다. 이 연결에 대한 네트워크 설정을 변경해야 합니다'라는 에러가 계속 뜨더라구요.VPN 정보도 다 맞는데 왜 안 되는지.. 다른 컴퓨터는 다 되는데 유독 제 노트북에서만 안 되더라구요.노트북을 부시기 직전 해결책을 찾았습니다. [해결책]1. 장치 관리자 검색 2. 네트워크 어댑터에 들어가  WAN MiniPort (IP), WAN MiniPort (IPv6), WAN MiniPort (PPTP) 디바이스 제거 3. 네트워크 어댑터 우클릭 후 '하드웨어 변경 사항 검색' 클릭 그러고 다시 연결을 시도해보세요 ㅎㅎ 끝
[Network] 502 Bad Gateway 오류란? (원인과 해결 방법)
·
Network
웹사이트를 방문하려고 할 때 “502 Bad Gateway” 오류를 본 적이 있나요? 갑자기 화면에 뜨는 이 메시지는 당황스럽지만, 사실 비교적 흔한 오류입니다. 이번 글에서는 502 Bad Gateway 오류의 의미, 원인, 그리고 해결 방법에 대해 알아보겠습니다.1. What is 502 Bad Gateway Error?502 Bad Gateway 오류는 서버 간 통신 문제로 인해 발생하는 HTTP 상태 코드입니다. 기본적으로, 클라이언트(사용자)가 웹사이트에 접속할 때 요청이 여러 개의 서버를 거쳐 전달되는데, 이 과정에서 프록시 서버나 게이트웨이 서버가 정상적인 응답을 받지 못하면 502 오류가 발생합니다.간단히 말해, “서버 간 연결에 문제가 생겨서 요청을 처리할 수 없다”는 뜻입니다. 2. 5..
[Network] 공인 IP, 사설 IP 개념 및 특징
·
Network
공인 IP와 사설 IP, 뭐가 다를까?인터넷을 사용하다 보면 "공인 IP"와 "사설 IP"라는 말을 한 번쯤 들어봤을 거예요.특히, 네트워크를 설정하거나 VPN을 사용할 때 이 개념이 자주 등장합니다.오늘은 이 둘이 어떤 차이가 있는지, 그리고 각각 어떤 역할을 하는지 자세히 알아보겠습니다. 1. 공인 IP란? (Public IP)공인 IP는 전 세계적으로 유일한 IP 주소입니다. 이 IP는 인터넷 서비스 제공업체(ISP)에서 사용자에게 할당하며, 인터넷에 직접 연결된 모든 기기는 공인 IP를 가질 수 있어요.📌 공인 IP의 특징✅ 고유성: 같은 공인 IP는 두 개 이상 존재 X✅ 인터넷 접근 가능: 인터넷 상의 다른 기기들이 공인 IP를 통해 해당 기기와 직접 통신✅ ISP에서 할당: 인터넷 서비스 ..
[IDE-인텔리제이] 인텔리제이 Translation 플러그인 사용
·
Java/IDE
인텔리제이를 톨해 개발을 하다보면 외국어 주석, 코드 설명 또는 다른 언어로 작성된 텍스트를 이해해야 할 때가 있습니다. 이때 Translation 플러그인을 활용하면 빠르고 편리하게 번역 작업을 수행할 수 있습니다. 1. How to download Translation?1) IntelliJ IDEA를 실행하고 메인 화면에서 상단 메뉴의 File > Settings(macOS는 IntelliJ IDEA > Preferences)로 이동합니다.2) 플러그인 검색 : 왼쪽 메뉴에서 Plugins를 선택한 후, 오른쪽 상단 검색창에 Translation을 입력합니다.3) 검색 결과에서 Translation 플러그인을 선택하고 Install 버튼을 클릭합니다. 설치가 완료되면 Restart IDE 버튼을 눌러..
[WAS] tomcat 에러 - Caused by: java.lang.IllegalStateException: StackOverflowError
·
Server/WAS
어제까지만 로컬에서 잘 작동하던 톰캣이 다음과 같은 에러를 내기 시작했다. "Caused by: java.lang.IllegalStateException: StackOverflowError로 인하여, 웹 애플리케이션 [/ekp]에서 annotation 스캔을 완료하지 못했습니다. 가능성 있는 근본 원인(root cause)들 중의 하나는 -Xss가 너무 적게 설정되어 있거나 불허된 순환 상속 의존관계들일 수 있습니다." 1. 원인 : StackOverflowError 발생StackOverflowError는 재귀 호출이 지나치게 깊거나, 복잡한 클래스 상속 구조를 처리하는 과정에서 스택 크기가 부족할 때 발생하는 에러라고 합니다. 2. 해결방법 : JVM 스택 크기 증가StackOverflowError를 ..