2025/03 57

JSON 파싱이란?

JSON 파싱이란,백엔드에서 받은 JSON 데이터를 우리가 앱이나 웹에서 사용할 수 있는 형태(예:변수, 객체)로 바꾸는 작업예시백엔드(Spring Boot)에서 아래와 같은 JSON 데이터를 보냄{ "dispatchNo": 101, "productName": "의자", "dispatchStatus": "pending"} 이건 단순히 텍스르로 된 데이터 덩어리임 -> 이걸 그대로 앱 화면에 쓸 수는 없으므로 이 텍스트(JSON)을 앱에서 쓸 수 있는 형태로 바꾸는 게 "파싱"임 Android(Kotlin)에서 사용하기1. JSON 데이터에 맞는 데이터 클래스(모델) 만들기data class Dispach( val dispathNo : Int, val productNaem : String, val d..

[참치맛집] 이춘복참치 잠실점

"잠실역 참치 맛집🐟"서울 송파구 올림픽로 269 캐슬플라자 2층📍영업시간월화수목금토일: 11:00-24:00브레이크타임: 14:30-16:30☎️0507-1392-4558 면접을 마치고 쫄쫄 배고픈 상태에서 첫면접+합격 기념으로 참치집에 갔다.원래 물고기자리에 가려고 했는데 사람이 많아서 후보에 있던 이춘복참치로 달려감     내부는 이렇게 생겼다. 룸도 있도 테이블도 있고 다찌자리도 있고 엄청 넓은 느낌  나는 실장추천참치를 먹었다.일품참치랑 고민하다가 컨디션 난조로 많이 힘을 못낼거 같아서 실장추천으로 갔다.참치집답게 사케도 종류가 엄청 많음 저녁엔 저녁메뉴만 안내해주는데, 점심때는 점심메뉴가 따로 있다. 시작! 정갈하게 각을 잡고 큰 판에 테트리스처럼 들어가있다.   전체적으로 보면 이런 느낌..

맛집탐험 2025.03.21

[ORM] Lazy Loading vs Eager Loading

📍Lazy Loading 과 Eager Loading는 ORM에서 연관 데이터를 가져오는 방법을 결정하는 전략으로 JPA에서 연관된 엔티티를 가져오는 방식1. Lazy Loading (지연 로딩)기본적으로 필요할 때만 연관된 데이터를 가져옴처음에는 프록시 객체를 반환하고 실제 데이터가 필요할 때 쿼리가 실행성능 최적화에 좋지만 LazyInitializationException(영속성 컨텍스트가 닫힌 후 조회 시 발생)을 주의해야함2. Eager Loading (즉시 로딩)연관된 엔티티를 즉시 조회하여 한 번의 쿼리로 가져옴필요 없는 데이터도 미리 가져오기 때문에 성능 저하가 발생할 수 있음ORM(Object-Relational Mapping)객체와 데이터베이스를 매핑하여 SQL 없이 데이터 조작을 가능..

[ORM] JPA, JPQL, QueryDSL - Spring과의 관계

JPA, JPQL, QueryDSL은 백엔드에서 데이터베이스와의 상호작용을 담당하는 ORM(Object-Relational Mapping) 기술이며, 주로 Spring Boot 및 Spring Framework와 함께 사용된다. 기술역할관련 기술JPA자바 객체와 데이터베이스를 매핑하여 SQL을 직접 작성하지 않고 데이터를 다룰 수 있도록 해주는 ORM 표준Spring Boot, Spring Data JPA, HibernateJPQLJPA에서 지원하는 객체지향 쿼리 언어로 SQL과 비슷하지만 엔티티 객체를 대상으로 쿼리를 실행JPA, Hibernate, Spring Data JPAQueryDSLJPQL을 코드 기반으로 더 편하게 작성할 수 있도록 해주는 동적 쿼리 빌더JPA, Hibernate, Sprin..

Spring vs Spring Boot

Spring이란?자바 기반의 대형 애플리케이션을 개발할 때 사용하는 프레임워크다양한 모듈이 있어서 필요한 기능을 선택해서 조합하는 방식으로 사용함주요 특징IoC (Inversion of Control) / DI (Dependency Injection)객체의 생성과 생명 주기를 관리하는 기능개발자가 직접 객체를 생성하는 것이 아니라, Spring 컨테이너가 관리함AOP (Aspect-Oriented Programming)공통적인 기능(예: 로깅, 트랜잭션 관리)을 분리해서 코드의 중복을 줄일 수 있음트랜잭션 관리데이터베이스 트랜잭션을 쉽게 처리할 수 있도록 도와줌JDBC, ORM 지원 (MyBatis, JPA 등)데이터베이스 연동을 쉽게 할 수 있는 기능을 제공MVC (Model-View-Controlle..

DevOps 알아보기(feat.docker)

DevOps는 소프트웨어 개발(Development) 과 운영(Operation) 을 결합한 개념단순히 Docker 같은 특정 도구만을 의미하는 게 아니라, 개발과 운영을 효율적으로 연결하는 문화, 프로세스, 그리고 도구를 모두 포함하는 개념이다. DevOps의 주요 개념자동화(Automation)반복적인 수작업을 줄이고, 개발과 배포를 자동화하는 것이 핵심.CI/CD(Continuous Integration & Continuous Deployment) 파이프라인을 구축해서 코드가 변경될 때 자동으로 테스트하고 배포하는 방식.협업(Collaboration)개발자(Dev)와 운영팀(Ops)이 긴밀하게 협력하여 빠르고 안정적인 배포를 가능하게 함.예전에는 개발과 운영이 따로따로 일했지만, DevOps에서는 ..

개발인생/etc 2025.03.19

[Spring] @Transactional

@Transactional이란?@Transactional은 Spring에서 트랜잭션(Transaction)을 관리하는 어노테이션- 데이터베이스 작업(Insert, Update, Delete 등)을 하나의 단위로 묶어서 처리- 오류가 발생하면 자동으로 롤백(rollback)하여 데이터의 일관성을 유지- 트랜잭션이 끝날 때 자동으로 commit 또는 rollback 수행 효과 1️⃣ 트랜잭션 시작 → 성공하면 Commit, 실패하면 Rollback@Servicepublic class UserService { private final UserRepository userRepository; public UserService(UserRepository userRepository) { thi..

[Spring] Spring Data JPA

Spring Data JPA란?- Spring Data JPA는 Spring에서 JPA(Java Persistence API)를 쉽게 사용할 수 있도록 도와주는 라이브러리이다.- SQL을 직접 작성하지 않아도 객체(Entity)와 데이터베이스를 자동으로 매핑하고, 데이터를 저장/조회/수정/삭제하는 CRUD 기능을 간단하게 구현할 수 있도록 해줌장점1️⃣ SQL을 직접 작성하지 않아도 된다@Query 없이도 자동으로 쿼리를 생성해 줌findById(id), save(entity), delete(entity) 같은 메서드만 호출하면 됨2️⃣ JPA의 기능을 편하게 사용할 수 있다엔티티(Entity) 기반으로 데이터베이스 테이블과 매핑OneToMany, ManyToOne 같은 관계 설정 가능자동으로 트랜잭션을..