개발할 때 코드 가독성을 높이기 위해 폰트 크기를 조절하는 경우가 많죠. 특히 프레젠테이션 중이거나 눈이 피곤할 땐 빠르게 폰트 크기를 조절할 수 있는 방법이 필요합니다.
IntelliJ IDEA에서는 마우스 휠과 Ctrl 키를 활용해 폰트 크기를 간편하게 조절할 수 있습니다. 이 기능을 활성화하는 방법을 소개할게요.


🔧 설정 방법

  1. IntelliJ IDEA 실행 후, 상단 메뉴에서
    File > Settings (Mac은 IntelliJ IDEA > Preferences)로 이동합니다.
  2. Editor > General을 클릭합니다.
  3. 왼쪽 메뉴에서 Mouse 항목을 선택합니다.
  4. Change font size (Zoom) with Ctrl+Mouse Wheel 옵션을 체크합니다.
  5. Apply 후 OK 버튼을 눌러 설정을 저장합니다.


✅ 설정 완료 후 사용 방법

이제부터는 Ctrl 키를 누른 상태에서 마우스 휠을 위아래로 스크롤하면
에디터 내 코드의 폰트 크기가 즉시 조절됩니다.

이 기능은 특히 다음 상황에서 유용합니다:

  • 실시간 코드 리뷰 중 빠른 확대/축소가 필요할 때
  • 발표 또는 화면 공유 중 가독성을 높이고 싶을 때
  • 눈이 피로할 때 빠르게 폰트 크기를 키우고 싶을 때

📌 마무리

이처럼 인텔리제이의 작은 설정 하나로 생산성과 편의성이 크게 향상될 수 있습니다.
지금 바로 설정해보시고, 더 쾌적한 개발 환경을 경험해보세요!

인텔리제이 개발자를 위한 필수 유용 플러그인 추천

안녕하세요! 오늘은 인텔리제이(IntelliJ IDEA)를 사용하는 개발자분들께 꼭 추천드리고 싶은 유용한 플러그인들을 소개해드리려고 합니다. 인텔리제이는 기본 기능만으로도 강력하지만, 플러그인을 잘 활용하면 생산성과 편의성이 훨씬 높아집니다.


1. 코드 생산성 및 편의성 플러그인

Key Promoter X

마우스로 클릭하는 기능을 단축키로 알려주는 플러그인입니다. 단축키를 빠르게 익히고 싶을 때 매우 유용해요.

Rainbow Brackets

복잡한 중첩 괄호를 색깔별로 구분해줘서 가독성이 크게 향상됩니다. 특히 함수나 조건문이 많을 때 필수!

CodeGlance Pro

에디터 오른쪽에 코드 미니맵을 보여줘 긴 코드도 한눈에 훑을 수 있습니다. 마치 VSCode의 미니맵과 비슷한 기능이에요.

String Manipulation

문자열을 camelCase, snake_case 등 다양한 스타일로 변환하거나 편집할 수 있어 문자열 처리 작업이 편해집니다.

Translation

코드 주석이나 문서 내 텍스트를 IDE 안에서 바로 번역할 수 있는 플러그인입니다. 해외 문서 참고할 때 유용해요.

.ignore

.gitignore, .dockerignore 등 ignore 파일을 쉽게 관리할 수 있도록 도와줍니다. 템플릿 기능도 지원해요.

Atom Material Icons

파일과 폴더 아이콘을 직관적이고 예쁜 아이콘으로 바꿔서 프로젝트 구조 파악이 쉬워집니다.

LangCursor

한글/영문 입력 상태를 커서 옆에 표시해주는 플러그인으로, 한영 전환 실수를 줄여줍니다. 한국 개발자분들께 추천!


2. 코드 품질 및 분석 플러그인

SonarLint

코드를 작성하는 즉시 버그, 코드 냄새, 보안 취약점 등을 실시간으로 알려줍니다. 자바, 코틀린 등 다양한 언어 지원!

Ktlint

코틀린 공식 린터로, 코틀린 코드 스타일을 자동으로 점검하고 정리해줍니다. 코틀린 프로젝트라면 필수입니다.


3. 버전 관리 및 협업 플러그인

GitToolBox

Git 브랜치, 커밋 정보, inline blame 등 Git 관련 기능을 확장해줍니다. Git을 자주 쓰는 개발자에게 강력 추천!

.env file support

.env 파일의 키 자동완성 및 하이라이팅을 지원해 환경 변수 관리가 훨씬 편리해집니다.


4. 개발 도구 및 프레임워크 지원

JPA Buddy

JPA 엔티티 생성, 쿼리 작성 등 JPA 관련 작업을 도와주는 플러그인입니다. 스프링 개발자분들께 강추!

Laconic POM for Maven

Maven pom.xml을 Gradle처럼 간결하게 보여줘 의존성 관리가 편해집니다.

MapStruct Support

MapStruct 사용 시 매핑 코드 자동 완성 및 지원 기능을 제공합니다.


5. 문서화, 시각화 및 AI 지원

PlantUML

시퀀스 다이어그램, 클래스 다이어그램 등 UML 다이어그램을 쉽게 작성할 수 있어 설계 문서 작성에 도움됩니다.

GitHub Copilot

AI 기반 코드 자동완성 플러그인으로, 코딩 속도를 크게 높여줍니다. (기업 환경에서는 사전 승인 필요할 수 있습니다.)

Grazie Pro

영문 맞춤법 및 문법 검사 기능을 제공해 문서 작성 시 실수를 줄여줍니다.


6. 기타 유용 플러그인

IdeaVim

Vim 키 바인딩을 인텔리제이에서 그대로 사용할 수 있게 해줍니다. Vim 사용자에게 필수!

Grep Console

콘솔 로그에 색상과 필터링 기능을 추가해 로그 가독성을 높여줍니다.


마치며

인텔리제이 플러그인은 정말 다양하고, 개발자마다 필요한 플러그인이 다를 수 있습니다. 하지만 오늘 소개해드린 플러그인들은 많은 개발자들이 공통적으로 사용하는 검증된 도구들이니 꼭 한 번 설치해보시길 추천드립니다.

플러그인을 잘 활용해서 더 효율적이고 즐거운 개발 환경 만드시길 바랍니다!


놓치고 있던 내 보험을 찾는 가장 쉬운 방법

혹시 자신이 가입한 보험이 정확히 몇 개인지 알고 계신가요? 시간이 지나면서 가입한 보험사, 보장 내용, 해지 여부 등 기억이 흐릿해지는 경우가 많습니다. 특히 부모님이나 가족 명의로 가입한 보험이 있는 경우, 정확한 확인이 어려워서 불이익을 당하기도 하죠.

이럴 때 유용한 서비스가 바로 **‘내 보험 찾아줌’**입니다.


✅ 내 보험 찾아줌이란?

**‘내 보험 찾아줌’(보험다보여)**은 금융위원회와 생명보험협회, 손해보험협회가 공동으로 운영하는 보험 통합 조회 서비스입니다.
이 서비스를 통해 내가 가입한 모든 보험을 무료로 확인할 수 있으며, 잊고 있던 보험이나 미청구 보험금까지 한눈에 확인할 수 있어요.


🧾 어떤 정보를 조회할 수 있나요?

  • 내 명의로 가입된 생명보험, 손해보험 내역
  • 실효(효력 상실) 또는 만기된 보험 포함
  • 미청구 보험금 현황
  • 가입일, 보험사, 상품명, 보장금액 등 상세 정보

💡 이런 분들께 추천합니다

  • 예전에 가입한 보험이 생각나지 않는 분
  • 부모님이나 자녀 명의 보험이 궁금한 분
  • 숨은 보험금이 있는지 확인하고 싶은 분
  • 보험 정리를 시작하고 싶은 분

📲 이용 방법 (3분이면 OK!)

  1. 포털에 ‘내보험 찾아줌’ 검색
  2. 공식 사이트 접속
    손해보험협회 : https://cont.knia.or.kr/main.knia
    생명보험협회 : https://cont.insure.or.kr/cont_web/intro.do
  3. 본인 인증 (공동인증서, 간편인증 가능)
  4. 보험 조회 신청 → 결과 확인 (당일 또는 익일 문자/메일 발송)

🔐 개인정보는 안전한가요?

‘내 보험 찾아줌’은 공공기관 및 보험협회가 운영하는 공식 서비스로, 정보 보호 및 보안이 철저하게 관리됩니다.
일회성 인증을 통해 필요한 정보만 수집하며, 자동으로 삭제됩니다.


💰 미청구 보험금도 찾을 수 있어요!

내가 몰랐던 미청구 보험금을 확인하고, 해당 보험사에 청구 절차 안내까지 받을 수 있습니다.
간단한 조회만으로 수십만 원에서 수백만 원까지 찾는 사례도 실제로 많습니다.


📝 마무리하며

보험은 들어둔 것보다 어떻게 관리하느냐가 중요합니다.
‘내 보험 찾아줌’을 통해 잊고 있던 보험을 찾고, 가족의 자산도 꼼꼼하게 관리해보세요.
정확한 정보 파악이 재정관리의 첫걸음입니다!

 

공식 사이트 접속
    손해보험협회 : https://cont.knia.or.kr/main.knia
    생명보험협회 : https://cont.insure.or.kr/cont_web/intro.do



조회신청 - 1단계 정보동의

 

조회신청 - 2단계 본인인증





조회신청 - 3단계 결과확인
    조회신청한 사람의 손해보험/생명보험이 모두 조회 된다.




요즘은 보안이 무엇보다 중요한 시대입니다. 특히 웹 서비스나 앱을 개발할 때 사용자 계정 보호를 위해 2단계 인증(2FA)을 도입하는 것이 필수가 되고 있습니다. 오늘은 그 중에서도 구글 OTP(Google Authenticator) 를 연동하는 개발 방법을 자세히 알아보겠습니다.


✅ 구글 OTP란?

Google Authenticator는 시간 기반 일회용 비밀번호(TOTP, Time-based One-Time Password)를 생성해주는 앱입니다. 사용자는 자신의 모바일 기기에 앱을 설치하고, 30초마다 갱신되는 인증 코드를 입력해 2단계 인증을 완료할 수 있습니다.


🔧 개발에 필요한 주요 기술 스택

  • 백엔드 언어: Python, Node.js, Java 등 어떤 언어든 가능
  • TOTP 라이브러리: pyotp(Python), speakeasy(Node.js), GoogleAuthenticator(Java 등)
  • QR 코드 생성 라이브러리: qrcode, goqr.me API 등

🛠️ 구현 순서

1. 사용자 계정과 연동할 시크릿 키 생성

import pyotp

secret = pyotp.random_base32()
print("Secret Key:", secret)
 

2. Google Authenticator 앱 등록용 QR 코드 생성

import pyotp
import qrcode

totp = pyotp.TOTP(secret)
uri = totp.provisioning_uri(name="username@example.com", issuer_name="MyApp")

img = qrcode.make(uri)
img.save("qrcode.png")
사용자는 QR 코드를 Google Authenticator 앱으로 스캔하여 등록합니다.

3. 인증 코드 확인 로직

user_input = "123456"  # 사용자가 입력한 코드
if totp.verify(user_input):
    print("인증 성공")
else:
    print("인증 실패")
 

💡 개발 팁

  • 시간 동기화 오류를 방지하려면 서버 시간은 NTP 서버 기준으로 정확히 맞춰야 합니다.
  • 시크릿 키는 안전하게 암호화해서 저장해야 하며, DB에 평문으로 저장하지 마세요.
  • QR 코드 생성 시, 사용자 이메일과 서비스명을 정확히 넣는 것이 인증 앱 내에서 혼란을 줄입니다.

🔐 2단계 인증을 도입하면 이런 점이 좋아요!

  • 해킹 방지: 패스워드 탈취만으로는 계정 접근 불가
  • 사용자 신뢰도 상승: 보안에 신경 쓰는 서비스라는 인식 제공
  • 다양한 보안 규제 준수: 금융, 헬스케어 등 분야에서 필수 조건

📝 마무리

Google OTP를 연동하는 것은 어렵지 않지만, 사용자 경험과 보안을 동시에 고려해야 하는 작업입니다. 위 내용을 기반으로 여러분의 서비스에 강력한 2단계 인증 기능을 쉽게 구현할 수 있습니다.

 

구분 사이트 채널 특징 및 참여 방법
네이버 카페 https://m.cafe.naver.com/hapticw740.cafe SK텔레콤 집단소송 카페 피해자 정보 공유, 실시간 Q&A, 후기 등
법무법인 대륜 https://www.daeryunlaw.com/en/skt 대륜 집단소송 안내 페이지 온라인 신청, 전화 상담 가능
법무법인 대건 https://daegun-criminal.kr/bbs/board.php?bo_table=aboutus&wr_id=6 대건 집단소송 안내 온라인 신청, 대표변호사 직접 상담
법무법인 로피드 https://lawpid.kr/skt-%ec%86%8c%ec%86%a1%ec%9c%84%ec%9e%84%ea%b3%84%ec%95%bd-%ec%95%88%eb%82%b4/ 로피드 집단소송 진행 지급명령 신청 등 신속한 절차 진행

 

 

 ipTIME 공유기 모델명
ipTIME [시리즈명] [속도 등급] [기능 접미사]
  AX: Wi-Fi 6 지원
A: Wi-Fi 5
N: Wi-Fi 4
AX1800 < AX3000 < AX6000
A1004 < A3004 < A8004
MESH
NS
MU

 

⚙️ 1. 시리즈명 ‘AX’, ‘A’, ‘N’의 의미

  • AX: Wi-Fi 6 지원 (최신 규격) → 속도와 연결 안정성 최고
  • A: Wi-Fi 5 (802.11ac 지원) → 중간급 성능
  • N: Wi-Fi 4 (802.11n 지원) → 구형 모델, 저가형 또는 보조용

TIP: 최신 기기를 사용하거나 500Mbps 이상 회선이면 무조건 AX 모델을 선택하세요!


🚀 2. 숫자 = 속도 등급

모델명 중 숫자가 클수록 최대 무선 속도 및 하드웨어 성능이 높습니다.

  • AX1800 < AX3000 < AX6000
  • A1004 < A3004 < A8004
  • 숫자만 보고도 등급이 한눈에!

예시 비교:

  • AX1800M = 보급형 Wi-Fi 6 모델
  • AX6000M = 하이엔드급, 1Gbps 이상 회선에 적합
  • A3004NS = 안정적인 중급형 AC 공유기

🔌 3. 기능 접미사 = 추가 기능 표시

모델명 뒤에 붙는 영문자로 기능을 유추할 수 있어요:

접미사기능 설명
NS NAS 지원 (USB 저장장치 연결)
MU MU-MIMO 지원 (여러 기기 동시 연결)
ITL 타워형 디자인
BCM 브로드컴 칩셋 사용 (안정성 높음)
MESH 메시 네트워크 지원
 

📈 성능별 추천 시리즈 요약

용도추천 모델 예시특징
기본 가정용 ipTIME A604M, A2004NS 100~500Mbps 회선에 적합
고속 인터넷 (기가급) ipTIME AX3000M, AX6000M 1Gbps 이상 회선, Wi-Fi 6
스트리밍/게임용 ipTIME AX8004BCM, AX11000MESH 고성능 CPU, 멀티 기기 동시 처리 강력
메시 구성용 ipTIME MESH3, AX2002MESH 집 전체 커버리지, 복층 이상에 추천
 

💡 마무리 정리

✔ 모델 앞 글자: AX > A > N 순으로 성능 높음
✔ 숫자: 클수록 빠르고 고사양
✔ 접미사: NS, MU, MESH 등으로 기능 추가 확인

 

IPTIME 제품별 비교표

http://www.iptime.co.kr/iptime/etc/diff_prd.php

 

ipTIME - 제품별 비교표

 

www.iptime.co.kr

 

룬 알고리즘(Luhn Algorithm)은 신용카드 번호가 유효한지 확인하는 간단한 수학 알고리즘이에요.

비전공자도 이해할 수 있도록 쉬운 예제와 함께 설명할게요.


✅ 룬 알고리즘 쉽게 설명하기

예를 들어, 다음과 같은 16자리 카드번호가 있다고 가정해볼게요:

카드번호: 4539 1488 0343 6467

이 숫자가 진짜 카드번호인지는 다음 단계로 확인해요.


🧮 룬 알고리즘 작동 방식

  1. 오른쪽 끝에서부터 시작해서 한 자리씩 왼쪽으로 이동해요.
  2. 짝수번째 자리는 그대로 두고, 홀수번째 자리는 2를 곱해요.
  3. 2를 곱한 값이 10 이상이면, 그 자릿수 숫자를 더해요. (예: 12 → 1 + 2 = 3)
  4. 마지막에 모든 숫자를 다 더해요.
  5. 합이 10으로 나누어떨어지면 유효한 카드번호예요!
public class LuhnCheck {

    public static boolean isValidCardNumber(String cardNumber) {
        int total = 0;
        boolean shouldDouble = false;

        // 오른쪽부터 왼쪽으로 하나씩 숫자 확인
        for (int i = cardNumber.length() - 1; i >= 0; i--) {
            int digit = Character.getNumericValue(cardNumber.charAt(i));

            if (shouldDouble) {
                digit *= 2;
                if (digit > 9) {
                    digit -= 9;
                }
            }

            total += digit;
            shouldDouble = !shouldDouble; // 번갈아가면서 true/false 전환
        }

        return total % 10 == 0;
    }

    public static void main(String[] args) {
        String cardNumber = "4539148803436467";

        if (isValidCardNumber(cardNumber)) {
            System.out.println("유효한 카드번호입니다.");
        } else {
            System.out.println("유효하지 않은 카드번호입니다.");
        }
    }
}

✅ 실행 결과

입력된 카드번호 4539148803436467는 실제로 룬 알고리즘을 통과하는 유효한 카드번호이므로, 실행 시 다음과 같은 출력이 나올 거예요:

 

> 유효한 카드번호입니다.

스프링 프레임워크 버전별 JDK 지원 정리

아래 표는 스프링 프레임워크(Spring Framework) 각 버전별로 공식적으로 지원하는 JDK(자바) 버전을 정리한 것입니다.

최신 정보와 주요 LTS(Long-Term Support) JDK 기준으로 작성되었습니다.

Spring Framework 버전  지원 JDK 버전 비고
3.2.x JDK 5 EOL(2016/12/31), 레거시 프로젝트용
4.3.x JDK 6, 7, 8 EOL(2020/12/31), 레거시 프로젝트용
5.0.x JDK 8 ~ 10  
5.1.x JDK 8 ~ 12  
5.2.x JDK 8 ~ 15  
5.3.x JDK 8 ~ 21 5.3.26 기준, LTS JDK 8/11/17/21 권장
6.0.x JDK 17 ~ 21 최소 JDK 17 필요
6.1.x JDK 17 ~ 23  
6.2.x JDK 17 ~ 25(예상)  
7.0.x JDK 17 ~ 27(예상)  

 

톰캣(Tomcat) 버전별 최소/최대 지원 JDK 버전 표

톰캣 버전  최소 지원 JDK 버전  최대 호환 JDK 버전  비고
11.0.x 17 21 (테스트 완료) / 27(예상) JDK 17 이상, JDK 21까지 공식 테스트됨
10.1.x 11 21 (테스트 완료) / 25(예상) JDK 11 이상, JDK 21까지 공식 테스트됨
10.0.x 8 17, 21 (테스트 완료) JDK 8 이상, JDK 17/21까지 호환
9.0.x 8 17, 21 (테스트 완료) JDK 8 이상, JDK 21까지 호환
8.5.x 7 17, 21 (테스트 완료) JDK 7 이상, JDK 21까지 호환
8.0.x 7 11, 17 (비공식) JDK 7 이상, 8.5.x로 대체됨
7.0.x 6 8, 11 (비공식) JDK 6 이상, WebSocket은 7 이상
6.0.x 5 7, 8 (비공식) JDK 5 이상
5.5.x 1.4 6, 7 (비공식) JDK 1.4 이상
4.1.x 1.3 5, 6 (비공식) JDK 1.3 이상
3.3.x 1.1 1.4, 5 (비공식) JDK 1.1 이상

 

+ Recent posts