반응형

코딩:개발일지 32

JWT vs OAuth2 정리 - 백엔드 개발자가 알아야 할 개념

■ JWT란?정의: JSON Web Token의 줄임말, 정보를 안전하게 전송하기 위한 토큰 형식구조:Header.Payload.SignatureHeader: 토큰 타입과 해싱 알고리즘Payload: 실제 데이터 (Claims)Signature: 토큰 검증용 서명특징:Self-contained (토큰 자체에 정보 포함)Stateless (서버에 상태 저장 안함)Base64로 인코딩됨만료시간 설정 가능■ OAuth2란?정의: 인증/인가를 위한 프로토콜, 제3자 앱이 사용자 대신 리소스에 접근할 수 있게 해줌주요 역할자:Resource Owner: 사용자Client: 앱Authorization Server: 인증 서버Resource Server: 리소스 서버Grant Types:Grant Type 용도 보안..

코딩:개발일지 2025.05.25

ORM(Object-Relational Mapping)은 꼭 써야 하나요?

ORM이 뭐지?객체와 관계형 데이터베이스를 연결해주는 기술코드의 객체와 DB의 테이블을 매핑해줌Java의 Hibernate, JavaScript의 Sequelize, Python의 SQLAlchemy 등이 대표적ORM의 장점SQL 문법 몰라도 DB 조작 가능객체지향적으로 데이터 다룰 수 있음코드 재사용성 높아짐DB 변경시 코드 수정 최소화 (MySQL → PostgreSQL 등)SQL 인젝션 같은 보안 위험 줄여줌ORM의 단점복잡한 쿼리는 직접 SQL 쓰는 게 더 효율적일 때 있음성능 이슈 발생 가능 (N+1 문제 등)학습 곡선 존재꼭 써야 할까?프로젝트 규모/성격에 따라 다름소규모/중규모 프로젝트: ORM 써서 생산성 높이는 게 이득대규모/고성능 필요한 프로젝트: Raw SQL과 혼용하는 게 좋음회사/..

코딩:개발일지 2025.05.21

Flutter, Android Studio, Android SDK, cmdline-tools 관계를 Java로 쉽게 이해하기

Flutter, Android Studio, Android SDK, 그리고 cmdline-tools 사이의 관계를Java 세계에 비유해서 정리해보기 [전체 개요]Flutter는 앱을 만드는 프레임워크 (Java로 치면 Spring Framework 같은 느낌).Android Studio는 개발 도구(IDE) (Java로 치면 IntelliJ 같은 느낌. 사실 기반도 IntelliJ).Android SDK는 플랫폼 라이브러리와 도구 모음 (Java로 치면 JDK와 비슷).cmdline-tools는 JDK 안에 있는 javac, java, jarsigner 등 명령어 툴셋과 비슷한 역할.[각 요소 설명 (Java 비유 포함)]구성 요소 Flutter 세계에서 역할 Java 세계에서 비유Flutter앱을 만드..

코딩:개발일지 2025.05.14

테스트와 품질 보증: 단위 테스트, 통합 테스트, TDD 정리

단위 테스트 vs 통합 테스트단위 테스트작은 단위(함수/메서드/클래스)를 독립적으로 검증외부 종속성은 모킹/스텁으로 대체함빠른 실행 속도, 즉각적 피드백코드 정확성 확인이 주 목적// 단위 테스트 예시public class CalculatorTest { @Test public void testAdd() { Calculator calculator = new Calculator(); assertEquals(5, calculator.add(2, 3)); }}통합 테스트여러 모듈/컴포넌트가 함께 작동하는지 검증실제 외부 종속성(DB, API)과 연동 테스트단위 테스트보다 느림컴포넌트 간 상호작용 검증이 목적// 통합 테스트 예시@SpringBootTestpublic cl..

코딩:개발일지 2025.05.08

[프로그래머스] 가장 가까운 같은 글자 (Java - Lv.1)

문제 ) 처음에는 쓸데 없이 indexOf를 사용해서 인덱스 값을 뽑아야 하나 생각했는데... 한~ 참 있다가 생각하니 그냥 맵으로 키 값을 확인해서 바꿔 놓고 뺄셈만 하면 되겠구나!! 생각이 딱 드니깐 왜 Level 1 인지 깨달았다........ 나는 파라미터로 받은 String을 split으로 배열로 만들어서 사용했는데, String은 charAt(i) 타입으로 for 문 안에서 사용이 가능했는데 char ch = s.charAt(i); 생각해내지 못한게 아쉬웠다. 더 짧게 풀이하신 분들 보면서 더 공부하도록 해야겠다!

코딩:개발일지 2023.08.23
728x90
반응형