본문 바로가기

프로그래밍/Back-end31

자바에서 소수점 버림 처리하는 다양한 방법 --소수점 처리, 특히 "소수점 이하를 버린다"는 작업은 자주 필요한 기능 중 하나입니다. 예를 들어, 계산 결과를 화면에 출력할 때 소수점 이하 자리를 없애고 싶을 때가 있죠. 자바에서는 이런 소수점 버림 작업을 다양한 방법으로 처리할 수 있습니다. 오늘은 그 방법들을 하나씩 알아보겠습니다.1. Math.floor()로 소수점 버리기첫 번째로 소개할 방법은 Math.floor()입니다. Math.floor()는 주어진 숫자보다 작거나 같은 가장 큰 정수로 내림을 해주는 메서드입니다. 즉, 소수점 이하를 버리고, 가장 가까운 정수로 내리는 거죠.public class Main {    public static void main(String[] args) {        double number = 3.1.. 2024. 11. 18.
자바에서 소수점 올림과 반올림 처리하는 다양한 방법 --소수점 처리, 특히 "올림"과 "반올림"은 자주 사용하는 기능 중 하나입니다. 우리가 일상에서 숫자를 다룰 때, 계산 결과를 적절한 형식으로 맞추려면 소수점을 어떻게 처리할지가 중요하죠. 자바에서는 이 작업을 아주 쉽게 할 수 있는데요, 올림과 반올림을 처리하는 다양한 방법을 알려드릴게요!1. 소수점 올림 (Ceiling) – Math.ceil()먼저, 소수점 올림부터 시작해볼까요? 소수점 올림은 말 그대로 숫자의 소수점 이하를 올려서 가장 가까운 정수로 만드는 작업입니다. 예를 들어, 3.1은 4로 올리고, 3.9도 4로 올림하는 거죠. 어떤 숫자든지 올림을 해서 정수로 만드는 기능이 필요할 때 Math.ceil()을 사용합니다.Math.ceil() 사용 예시public class Main {   .. 2024. 11. 16.
Java에서 정규식(Regex) 사용법과 메타문자 소개 --정규식(정규 표현식)은 문자열을 패턴에 맞춰 검색하거나 수정하는 데 매우 유용한 도구입니다. 예를 들어, 이메일 주소가 맞는 형식인지 확인하거나, 특정 단어를 찾아서 다른 텍스트로 교체할 때 활용할 수 있죠. Java에서는 java.util.regex 패키지를 사용하여 정규식을 처리합니다. 이 패키지의 두 핵심 클래스는 Pattern과 Matcher입니다. 이들을 이용하면 문자열을 정규식으로 쉽게 처리할 수 있습니다.이번 포스트에서는 Java에서 정규식을 사용할 때 자주 쓰이는 메타문자(문자 패턴을 정의하는 특수한 문자들)를 표로 정리해 드리겠습니다. 이를 통해 정규식의 기본 개념과 사용법을 한눈에 이해할 수 있도록 도와드릴게요!1. 정규식의 메타문자 (Metacharacters)정규식에서 메타문자는.. 2024. 11. 15.
자바에서 서버의 호스트명을 가져오는 방법 - -자바를 사용하다 보면, 서버의 호스트명(혹은 로컬 머신의 호스트명)을 가져와야 할 때가 있습니다. 그럴 때 사용할 수 있는 두 가지 방법을 소개할게요. 바로 InetAddress 클래스와 System 클래스를 사용하는 방법입니다.1. InetAddress 클래스를 이용한 호스트명 가져오기 가장 많이 사용되는 방법은 InetAddress 클래스를 이용하는 것입니다. InetAddress는 네트워크 관련 정보를 다루는 클래스인데요, 이를 통해 로컬 시스템의 호스트명을 손쉽게 얻을 수 있습니다. import java.net.*;public class HostNameExample { public static void main(String[] args) { try { /.. 2024. 11. 13.
자바에서 경로 다루기: File, Request, Session을 활용한 경로 처리 방법 - -자바로 웹 애플리케이션을 만들다 보면, 파일 경로를 제대로 다루는 것이 정말 중요해요. 예를 들어, 파일 업로드나 다운로드를 구현하거나 웹 애플리케이션 내에서 특정 파일을 참조할 때 경로 처리가 잘못되면 예상치 못한 오류가 발생할 수 있죠. 그래서 오늘은 자바에서 파일 경로를 다루는 방법을 File, Request, Session을 기준으로 알아보려고 해요.File 클래스를 이용한 경로 처리 자바에서는 File 클래스를 이용해서 파일 경로를 다룰 수 있어요. File 클래스를 사용하면 현재 경로를 절대경로나 상대경로로 쉽게 알 수 있습니다.절대경로 (Absolute Path) 절대경로는 파일 시스템의 루트부터 시작하는 완전한 경로에요. 예를 들어, Windows에서는 C:\Users\Username.. 2024. 11. 12.
자바 AWS SNS ( Amazon Simple Notification Service ) ! 아마존 문자 서비스 구현 ! - -안녕하세요? 오늘은 아마존 문자 서비스인 AWS SNS ( Amazon Simple Notification Service )에 대해서 알아보도록 하겠습니다.AWS SNS 란??: Amazon Simple Notification Service 의 약자로,게시자에서 구독자에게 메시지 전송을 제공하는 관리형 서비스라고 설명하고 있다.https://docs.aws.amazon.com/ko_kr/sns/latest/dg/welcome.html Amazon이란 무엇입니까SNS? - Amazon Simple Notification Service이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.docs... 2024. 10. 25.
자바 AWS SES ( Amazon Simple Email Service ) 아마존 이메일 서비스 구현 ! - -안녕하세요? 오늘은, 아마존 이메일 서비스인 AWS SES ( Amazon Simple Email Service ) 에 대해서 알아보도록 하겠습니다. AWS SES 란??: Amazon Simple Email Service 의 약자로,사용자의 이메일 주소와 도메인을 사용해 이메일을 보내고 받기 위한,경제적이고 손쉬운 방법을 제공하는 이메일 플랫폼 이라고 설명하고 있다.https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/Welcome.html Amazon SES 클래식란 무엇입니까? - Amazon Simple Email Service이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를.. 2024. 10. 25.
JPA 쿼리 JPQL 벌크 연산 - -안녕하세요? 오늘은 JPA의 JPQL 중 벌크 연산에 대해 알아보도록 하겠습니다.-벌크 연산: 쿼리 한번으로, 여러 테이블 로우 변경: executeUpdate의 결과는 영향받은 엔티티 수를 반환: Update / Delete 지원: 하이버네이트는 Insert ( insert into .. select ) 지원샘플 쿼리)EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");EntityManager em = emf.createEntityManager();EntityTransaction tx = em.getTransaction();tx.begin();// Flush 자동 호출 : commit / [쿼리날라갈때] / 강제호출St.. 2024. 10. 24.
JPA 쿼리 패치 조인 JPQL FETCH JOIN - -안녕하세요? 오늘은 JPA에서 JPQL 패치(FETCH) 조인 에 대해 알아보도록 하겠습니다. -페치 조인 ★★★(FETCH JOIN): SQL 조인 종류가 아니라, JPQL에서 성능최적화를 위해 제공: 연관된 엔티티나 컬렉션을 SQL 한번에 함께 조회JPQLSELECT e FROM 엔티티 e JOIN FETCH e.연관관계객체 sSQLSELECT t1.*, t2.* FROM 테이블1 as t1INNER JOIN 테이블2 as t2ON t1.key = t2.key+예로 들어서, Member 엔티티와, Team 엔티티가 존재하고, Member는 Team과 다대일 [N:1] 연관관계라고 가정했을 때멤버 엔티티 생성)@Entitypublic class Member {    @Id @GeneratedVal.. 2024. 10. 24.
JPA JPQL 경로 표현식 - -안녕하세요? 오늘은 JPA에서 JPQL의 경로 표현식 에 대해 알아보도록 하겠습니다. -경로 표현식: 점(.)을 찍어 객체 그래프를 탐색하는 것: 상태필드 / 연관필드로 나눠진다.상태필드(state field)경로 탐색의 끝, 더이상 탐색 불가연관필드(accociation field)단일 값 연관필드@ManyToOne, @OneToOne, 대상이 엔티티컬렉션 값 연관필드@OneToMany, @ManyToMany, 대상이 컬렉션+상태필드: SELECT e.컬럼 FROM 엔티티 e> 경로 탐색의 끝>> 추가 탐색 불가+단일값 연관필드(@ManyToOne, @OneToOne): SELECT e.단일연관관계객체 FROM 엔티티 e> 묵시적 내부 JOIN 발생> 추가 탐색 가능+컬렉션값 연관필드(@OneTo.. 2024. 10. 23.
JPA JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 - -안녕하세요? 오늘은 JPA의 JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 에 대해서 알아보도록 하겠습니다. JPQL 타입 표현: 문자는 싱글쿼테이션 사용: 숫자/불리언 타입은 자바와 동일: enum은 패키지명을 포함해야한다.> 파라메터에 셋팅해서 사용 가능: 엔티티 타입은, 상속관계에서 사용한다.타입 표현예제문자'HELLO', 'She''s'숫자10L(Long), 10D(Double), 10F(Float)BooleanTRUE, FALSEENUMjpabook.MemberType.Admin (패키지명 포함)엔티티타입TYPE(m) = Member (상속 관계에서 사용)샘플코드)String jpql = "SELECT e.컬럼, 'TEST', true FROM 엔티티 e"            +.. 2024. 10. 18.
JPA 쿼리 JPQL 페이징 조인 서브쿼리 - -안녕하세요? 오늘은, JPA의 쿼리 방법 중 하나인, JQPL에 대해 알아보도록 하겠습니다.  JPQL(Java Persistence Query Language) : 객체지향 쿼리 언어: 테이블 대상이 아닌,엔티티를 대상으로 쿼리: SQL을 추상화 > 특정 DB에 의존하지 않음: JPQL은 결국 SQL로 변환샘플 예시)select 문 :: =select_절from_절[where_절][groupby_절][having_절][orderby_절]update_문 :: = update_절 [where_절]delete_문 :: = delete_절 [where_절] 사용법 : 엔티티와 속성은 대소문자 구분이 필수: JPQL 키워드는 대소문자 구분 불필요: 엔티티 이름 사용> 테이블 이름 X: 별칭(Alias)은 .. 2024. 10. 18.
JPA QueryDSL 네이티브SQL JDBC MyBatis - -안녕하세요? 오늘은 JPA의 다양한 쿼리 방법에 대해서 알아보도록 하겠습니다. JPA에서는,JPQL ★★★JPQ CriteriaQueryDSL ★★★네이티브 SQLJDBC 직접 사용(MyBatis, SpringJdbcTemplate ...)등등 다양한 쿼리 방법을 지원합니다.그 중에서, JPQL에 대해서, 다뤄보도록 하겠습니다.JQPL ★★★: JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공: SQL과 문법이 유사 (SELECT / FROM / WHERE / GROUP BY / HAVING / JOIN): JPQL은 엔티티 객체  대상으로 쿼리 (SQL은 데이터 베이스 테이블을 대상으로 쿼리): 가장 단순한 조회 방법: 특정 DB SQL에 의존하지 않음: JPA를 사용하면, 엔티.. 2024. 10. 18.
JPA 지연로딩 즉시로딩 - -안녕하세요? 오늘은 JPA에서 중요한 핵심 기능인 즉시로딩과 지연로딩에 대해서 알아보도록 하겠습니다.※ 지난 시간에서 다뤘던 프록시의 개념을 참고해주세요.https://logger-debug.tistory.com/entry/JPA-%EC%A7%80%EC%97%B0%EB%A1%9C%EB%94%A9-%EC%A6%89%EC%8B%9C%EB%A1%9C%EB%94%A9-%ED%94%84%EB%A1%9D%EC%8B%9C-proxy JPA 지연로딩 즉시로딩 프록시 proxy- -안녕하세요? 오늘은, JPA의 연관관계 관리 중, 프록시( proxy )에 대해서 알아보도록 하겠습니다.  프록시란?: JPA에서는 불필요한 쿼리를 최적화하기 위해서는, 지연로딩과 프록시라는 개념으logger-debug.tistory.c.. 2024. 10. 17.
JPA 지연로딩 즉시로딩 프록시 proxy - -안녕하세요? 오늘은, JPA의 연관관계 관리 중, 프록시( proxy )에 대해서 알아보도록 하겠습니다.  프록시란?: JPA에서는 불필요한 쿼리를 최적화하기 위해서는, 지연로딩과 프록시라는 개념으로 해결※ 지연로딩은, 다음 포스팅에 다뤄보도록 하겠습니다.※ 해당 포스팅은, 즉시로딩과 지연로딩의 매커니즘의 이해를 돕기위한, 개념 지원 포스팅 입니다.* find(): DB를 통해서 실제 엔티티를 바로 조회* getReference(): DB 조회를 미루는 가짜(프록시) 엔티티 객체 조회+getReference() 가 실행 되었을 때, 프록시 객체는 실제 객체의 참조(target)을 보관한다.프록시 객체를 호출 시, 프록시 객체는 실제 객체의 메소드를 호출하게 된다.샘플소스)EntityManagerFa.. 2024. 10. 17.
JPA 영속성 전이 CASCADE 고아 객체 - -안녕하세요? 오늘은 JPA CASCADE 영속성 전이와 고아 객체 에 대해서 알아보도록 하겠습니다. -영속성 전이(CASCADE): 연관관계랑은 전혀 상관이 없다.: 단일 소유자로써 ★★★부모 엔티티의 데이터를 등록할 때,연관관계가 설정된 자식 엔티티의 정보를일괄 등록하는 기능> 부모가 하나일 때에만 사용 가능>> 단일 엔테티에 종속적일때 사용 ★★★>>> 타 엔티티와의 영향도 고려 필수 ★★★부모 엔티티 생성)@Entitypublic class Parent {    @Id @GeneratedValue  @Column(name = "PARENT_ID")  private Long id;    @Column(name = "PARENT_NAME")  private String name;    @OneTo.. 2024. 10. 15.
JPA 영속성 영속상태와 준영속상태 - -안녕하세요? 오늘은, JPA의 특성 중 하나인, 영속 상태와 준영속 상태에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트/이점과 flush 등의 관련된 내용은, 아래 포스팅을 참조하시길 바라겠습니다.https://logger-debug.tistory.com/entry/JPA-%EC%98%81%EC%86%8D%EC%84%B1%EA%B3%BC-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC JPA 영속성과 영속성 컨텍스트에 대하여!- -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 .. 2024. 10. 15.
JPA 영속성 Flush - -안녕하세요? 오늘은, 이전 포스팅에서 다뤘던, 영속성 컨텍스트의 이점 중에서, 1차캐시 중, 트랜잭션의 commit 시점에서, 내부적으로 이루어지는 flush에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트/이점 등의 관련된 내용은, 아래 포스팅을 참조하시길 바라겠습니다.https://logger-debug.tistory.com/entry/JPA-%EC%98%81%EC%86%8D%EC%84%B1%EA%B3%BC-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC JPA 영속성과 영속성 컨텍스트에 대하여!- -안녕하세요? 오늘은 JPA에서 가장 중요한 .. 2024. 10. 15.
JPA 영속성 컨텍스트의 장점에 대하여! - -안녕하세요? 오늘은, JPA에서 가장 중요한 개념인, 영속성에서 더 나아가서, 영속성 컨텍스트의 이점에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트에 대해서는, 아래 포스팅을 참조하시면 됩니다.https://logger-debug.tistory.com/entry/JPA-%EC%98%81%EC%86%8D%EC%84%B1%EA%B3%BC-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC JPA 영속성과 영속성 컨텍스트에 대하여!- -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 중요.. 2024. 10. 15.
JPA 영속성과 영속성 컨텍스트에 대하여! - -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 중요한 점은,1. 객체와 관계형 데이터베이스를 매핑하는 것(Object Relational Mapping)2. 영속성 컨텍스트를 이해하는 것이라고 볼 수 있습니다.JPA에서는, 요청이 올때마다, EntityManagerFactory를 통해서 EntityManager를 생성을 해주게 됩니다.EntityManager에서는 이제, 데이터 커넥션을 사용해서 DB를 사용하게 됩니다.엔티티의 생명주기는 크게 비영속 / 영속 / 준영속 / 삭제 로 나눠집니다.그럼 각각에 대해서 자세히 알아보도록 하겠습니다.-비영속: 영속성 컨텍스트와 전혀 관계가 없는 상태// 객체를 생성만 한 상태(비영속) En.. 2024. 10. 15.
JPA 데이터 타입과 기본 임베디드 컬렉션에 대하여! - -안녕하세요? 오늘은 JPA에서의 데이터 타입 분류에 대해서 알아보도록 하겠습니다.JPA에서의 데이터 타입은, 엔티티 타입과, 값 타입으로 분류합니다.엔티티 타입: @Entity로 정의하는 객체: 식별자가 존재: 생명주기 관리 가능: 공유 가능: 데이터가 변해도,식별자로 지속해서 추적 가능값 타입: 의미있는 비지니스 메소드 생성 사용 가능: 식별자 미존재: 공유하지 않고, 복사해서 사용: 불변 객체로 만들어서 사용 (getter 생성, setter 미생성): int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체: 복잡한 객체 세상을 단순화하기 위한 개념> 단순하고 안전하게 다룰 수 있어야한다.>> 엔티티를 값 타입으로 만들면 X>>> 식별자가 필요하고, 지속해서 값.. 2024. 10. 14.
JPA 키 매핑 종류와 전략에 대해서! - - 안녕하세요? 오늘은 JPA 에서의 키 매핑의 방법과, 키 매핑 전략에 대해서, 알아보도록 하겠습니다.   ※ JPA의 중요 매핑 어노테이션에 대해서는, 아래 포스팅을 참조 바라겠습니다. https://logger-debug.tistory.com/entry/JPA-%EC%A3%BC%EC%9A%94-%EB%A7%A4%ED%95%91-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C JPA 주요 매핑 어노테이션에 대해서!- -안녕하세요? 오늘은, JPA에서의 중요 매핑 어노테이션에 대해서 알아보도록 하겠습니다.-JPA의 중요 매핑 어노테이션의 종류는,@Entity @Table @ID @Column @Enu.. 2024. 10. 14.
JPA 주요 매핑 어노테이션에 대해서! - -안녕하세요? 오늘은, JPA에서의 중요 매핑 어노테이션에 대해서 알아보도록 하겠습니다.-JPA의 중요 매핑 어노테이션의 종류는,@Entity @Table @ID @Column @Enumerated @Temporal @Lob  @Transient 등등이 존재합니다. 우선 샘플코드로 어떻게 사용하는지 알아보도록 하겠습니다.@Entity@Table(name="")public class 엔티티명 { @ID private Long id; @Column(name="") private String name; @Column private Integer age; @Enumerated(EnumType.STRING) private RoleType roleType; @Temporal(T.. 2024. 10. 14.
JPA 상속관계 매핑 MappedSuperclass --안녕하세요? 오늘은 JPA의 상속관계중에서, MappedSuperclass에 대해서 알아보도록 하겠습니다.※ JPA의 상속관계 매핑에 대해서는 아래 포스팅을 참조 부탁드리겠습니다.https://logger-debug.tistory.com/entry/JPA-%EC%83%81%EC%86%8D%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91 JPA 상속관계 매핑--안녕하세요? 오늘은, JPA의 고급매핑 중에서, 상속관계 매핑에 대해서 알아보도록 하겠습니다. -상속관계 매핑이란?: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑: @Ingeritance 를logger-debug.tistory.com -@MappedSuperclass : 공통 매핑 정보가 필요할 때 사용: 부모 클.. 2024. 10. 11.
JPA 상속관계 매핑 --안녕하세요? 오늘은, JPA의 고급매핑 중에서, 상속관계 매핑에 대해서 알아보도록 하겠습니다.-상속관계 매핑이란?: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑: @Ingeritance 를 사용해서 전략 설정※ 객체는 상속관계가 존재하지만, 관계형 데이터베이스에는 상속관계가 존재하지 않습니다.그나마, 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사합니다.상속관계 매핑은 조인 전략, 단일 테이블 전략, 구현 클래스마다의 테이블 전략 세가지가 존재합니다. -조인 전략 : 각각 테이블로 변환해서, 조인으로 관리하고자하는 전략: 가장 정규화된 전략: 외래 키 참조 무결성 제약조건 활용 가능 (타 테이블에서 데이터 조회 시 설계가 깔끔): 저장공간의 효율화 최대: 조회시 조인을 많이 .. 2024. 10. 11.
JPA 객체 지향 모델링 연관관계 매핑 (2탄) --안녕하세요? 오늘은 JPA의 다양한 연관관계 매핑에 대해서 알아보도록 하겠습니다.※ JPA의 연관관계에 대해서는 이전 포스팅을 참조해주시길 바라겠습니다.https://logger-debug.tistory.com/entry/JPA-%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%EB%AA%A8%EB%8D%B8%EB%A7%81-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91-1%ED%83%84 JPA 객체 지향 모델링 연관관계 매핑 (1탄)- -안녕하세요? 오늘은 JPA의 가장 중요 관점인, 객체 지향 모델링에 대해서, 알아보도록 하겠습니다.-기존의 DB 모델링과 비교를 했을때, JPA는 객체 중심으로 이루어져있는데,객체를 테이블에.. 2024. 10. 11.
JPA 객체 지향 모델링 연관관계 매핑 (1탄) - -안녕하세요? 오늘은 JPA의 가장 중요 관점인, 객체 지향 모델링에 대해서, 알아보도록 하겠습니다. -기존의 DB 모델링과 비교를 했을때, JPA는 객체 중심으로 이루어져있는데,객체를 테이블에 맞추어, 데이터 중심으로 모델링을 하게되면, 협력 관계를 만들 수 없습니다.테이블은 외래 키로 조인을 사용해서, 연관된 테이블을 찾게 되고, 객체는 참조를 사용해서 연관된 객체를 찾게 되는데요,이렇게 테이블과 객체 사이에는 이런 큰 간격이 존재합니다.그렇기에, JPA에서는 연관관계 설정을 해서 사용하게 됩니다.연관관계 설정에서는, 단방향 연관관계와 양방향 연관관계가 존재합니다.-단방향 연관관계샘플코드로 한번 알아보도록 하겠습니다.단방향 주 테이블 외래 키 관리 엔티티 생성)@Entitypublic class .. 2024. 10. 11.
Java의 인터셉터(Interceptor)와 필터(Filter)에 대해서! -- 안녕하세요? 오늘은 Java의 인터셉터(Interceptor)와 필터(Filter)에 대해서 알아보도록 하겠습니다. 인터셉터(Interceptor)와 필터(Filter)는 요청과 응답을 가로채어 처리하는 메커니즘으로, 주로 웹 애플리케이션에서 사용됩니다. 이 둘은 비슷한 기능을 수행하지만, 사용되는 환경과 목적에 따라 다릅니다. 인터셉터 (Interceptor): 주로 Spring MVC와 같은 프레임워크에서 사용되는 컴포넌트로, 특정 요청에 대해 사전 및 사후 처리를 수행합니다.: 요청이 컨트롤러에 도달하기 전에(사전 처리) 또는 컨트롤러에서 응답을 반환한 후(사후 처리) 동작합니다.: 특정 메서드(컨트롤러) 호출 전후에 로직을 삽입할 수 있습니다.: Spring의 DI(의존성 주입)를 통해 다양.. 2024. 10. 10.
Java 쿠키(Cookie)와 세션(Session)에 대해서! -- 안녕하세요? 오늘은, Java에서의 쿠키(Cookie)와 세션(Session)에 대해서 알아보도록 하겠습니다. ※ 쿠키(Cookie)와 세션(Session)을 사용하는 이유  : HTTP 프로토콜의 특징이자 약점을 보완하기 위해 사용 ※ HTTP 프로토콜의 특징  : 비연결지향(Connectionless), 상태정보유지안함(Stateless)     [Client] > [Request] > [Server] > [Response] > [Disconnect]  쿠키(Cookie) : 클라이언트의 브라우저에 저장되는 작은 데이터 조각입니다. : 서버가 클라이언트에게 전송하고, 클라이언트는 이후 요청 시 이 쿠키를 서버에 다시 전송합니다. : 쿠키는 클라이언트의 브라우저에 저장되며, 클라이언트가 브라우저를.. 2024. 10. 10.
Java 스트링(String) 스트링버퍼(StringBuffer) 스트링빌더(StringBuillder)에 대해서! -- 안녕하세요? 오늘은, Java의 문자열 클래스인 스트링(String), 스트링버퍼(String Buffer), 스트링빌더(String Builder)에 대해서 알아보려 합니다.   셋 다 JAVA 문자열 클래스의 일종이지만, immutable ↔ mutable 차이가 있습니다. 그럼, 각각에 대해서 알아볼까요? 스트링 (String) : 불변성(Immutable) : 한 번 생성된 문자열은 변경할 수 없습니다. 문자열을 변경하려고 하면 새로운 문자열 객체가 생성됩니다. : 한 번 생성되면, 할당된 메모리 공간이 변하지 않습니다. (주소값이 Stack 메모리 영역에 쌓이고, 클래스들은 Heap 메모리 영역에 생성) : 기존에 생성된 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열이 붙는 것.. 2024. 10. 10.