전체 글 112

[24.08.21] Persistent Context(JPA)

엔티티 매니저 팩토리(EntityManagerFactory)란?엔티티 매니저를 생성할 수 있는 기능을 제공하는 팩토리 클래스이다.thread-safe하기 때문에 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간 공유해서 재사용한다.thread-safe한 기능을 요청 스코프마다 생성하기에는 비용(시간, 메모리) 부담이 크므로 application 스코프와 동일하게 싱글톤으로 생성해서 관리하는 것이 효율적이다.따라서 데이터베이스를 사용하는 애플리케이션 당 한 개의 EntityManagerFactory를 생성한다. 엔티티 매니저(EntityManager)란?엔티티 매니저는 엔티티를 저장하는 메모리 상의 데이터베이스를 관리하는 인스턴스이다.엔티티를 저장하고, 수정, 삭제, 조회하는 등의 엔티티와 관..

TIL 2024.08.25

한화시스템 SW캠프 9기 8월 4주차 회고록

1. Weekly I Learned[24.08.19] : xml & springmybatis에서의 JOIN 쿼리 날리는 법[24.08.20] : transactional[24.08.21] : JPA intro and Persistence Context[24.08.22] : Mapping Entity(with table)[24.08.23] : JPA   2. 이번주 회고회고를 들어가기 전 한마디요즘 왜 이렇게 하루하루 너무 신박할까? 그래서 참 좋은 경험들을 많이하는데 지치는 감이 없지않아 있다.(이번주 글은 두서 없을 수도 있다는 점 참고해주세요~ / 이제 회고는 한주를 돌아보고 그 때 있었던 것들을 통해 배울건 배우고 한번 더 되뇌이고 싶은건 되뇌이고 버리고 싶은 감정(?)이 있었다면 버리는 감정쓰레기..

[24.08.19] SpringMybatis 내용 몇가지 간단 정리

트랜잭션 전파 옵션REQUIRED: 현재 트랜잭션이 있으면 그 트랜잭션에서 실행하고, 없으면 새 트랜잭션을 시작합니다.REQUIRED_NEW: 항상 새 트랜잭션을 시작하며, 기존 트랜잭션이 있으면 잠시 중단합니다.SUPPORTS: 트랜잭션이 있으면 그 트랜잭션 내에서 실행하고, 없으면 트랜잭션 없이 실행합니다.NOT_SUPPORTED: 트랜잭션 없이 실행하며, 기존 트랜잭션이 있으면 잠시 중단합니다.MANDATORY: 반드시 트랜잭션 내에서 실행하며, 진행 중인 트랜잭션이 없으면 예외를 발생시킵니다.NEVER: 트랜잭션 없이 실행하며, 기존 트랜잭션이 있으면 예외를 발생시킵니다.NESTED: 현재 트랜잭션이 있으면 중첩 트랜잭션 내에서 실행하며, 없으면 새 트랜잭션을 시작합니다.Controller : 가..

TIL 2024.08.19

한화시스템 SW캠프 9기 8월 3주차 회고록

1. Weekly I Learned[24.08.12] : AOP(Aspect Oriented Programming)[24.08.13] : Spring Boot 시작!(기본적인 사용법?)[24.08.14(수)] : File Upload[24.08.16(금)] : Mybatis 시작!(동적 쿼리 기깔나게 날리는 법, CRUD) 2. 이번주 회고이번주 회고를 들어가기 전 한마디이번주는 지식 습득 외에도 앞으로 인생을 살아가는데 '좋은 경험이였다' 라고 생각이 들 만한 경험을 했다. 이런 경험 및 배움을 통해 '어른'이 되어가고 과정인 것 아닐까? 좋은 경험발단, 전개, 위기, 절정, 결말은 해당 경험을 통해 내가 느끼는 감정 흐름이다.발단사건의 시작 -> 월요일 점심시간, 같이 수업듣고 있는 친구들은 훈련장..

[24.08.15] Servlet에서 궁금한점 몇가지 정리

1. 메타 정보, 메타 데이터는 또 뭐야?메타 데이터, 메타정보 둘다 클래스나 객체에 대한 정보를 설명하는 용어로, 클래스의 구조와 특성에 대한 정보를 포함(클래스의 구조, 클래스 이름, 필드, 메소드, 클래스 상속 관계 2. Mock 객체?단위 테스트(Test)에서 실제 객체를 대신하여 사용되는 가짜 객체 3. Reflection 기술?클래스의 메타 데이터를 동적으로 조회하고 조작할 수 있게 해준다. 4. attribute vs parameterAttribute : httpservletrequest 객체로 다른 서블릿의 값 전달 매개체Parameter : URL의 querystring이나 http body를 통한 값 전달 매개체 5. HttpServletRequest vs HttpServletResp..

TIL 2024.08.15

[24.08.15] java, spring Annotation 정리

Spring Framework 기본적인 AnnotationComponent : 특정 역할이 없는 기본 빈Repository : DAO를 정의하며 DB와 상호작용을 처리하는 컴포넌트Service : 비즈니스 로직(BL)을 처리하는 서비스층 컴포넌트Controller : 웹 요청을 처리, 모델과 뷰를 연결하는 컨트롤러 계층 컴포넌트Autowired : 빈을 자동으로 주입하여 의존성을 해결하는데 사용NoArgsConstructor : 기본 생성자AllArgsConstructor : 모든 필드값을 포함하는 생성자Setter : 자동으로 모든 setter 메소드 만들기Getter : 자동으로 모든 getter 메소드 만들기ToString : 자동으로 toString 메소드 만들기Configuration : 어노테..

TIL 2024.08.15

[24.08.12] AOP, Filter, interceptor 차이가 뭐지?

AOP란?AOP는 관점 지향 프로그래밍(Aspect Oriented Programming)의 약자이다.중복되는 공통 코드를 분리하고, 코드 실행 전이나 후의 시점에 해당 코드를 삽입함으로써 소스 코드의 중복을 줄이고, 필요할 때마다 쓸 수 있도록 객체화하는 기술이다. ex) 로그인시 인증/인가, 핵심 비즈니스 로직에 적용하는 가능인데, 내가 보기엔 java가 OOP(Object Oriented Programming)인데, 이 OOP를 더 잘 사용하게끔 도와주는 하나의 방법론 이라고 생각한다. 그리고, 관점 지향 프로그래밍 이라는 말 부터 너무 추상적이다. 어떤 관점으로 보느냐에 따라 달라진다는 것인데,,더 이야기 해보겠다.Aspect(관점)어떤 기능을 구현할 때 그 기능을 '핵심 기능' & '부가 기능'..

TIL 2024.08.13

[24.08.08] CQRS

CQRS(Command and Query Responsibility Segregation)란? 현재 이해한 만큼까지만 정리C : ControllerS : ServiceA : AggregateR : RepositoryCommand의 Domain에서 interface 사용하는 이유1. 타입 은닉(다형성), 2. 구현 은닉(오버라이딩), 3. 유지보수, 4. DIP 적용  궁금한 점더 큰 프로젝트에서 CQRS 자체가 하나의 도메인이 되어버리는 상황에서는 과연 어떻게 이 일들 풀어 해쳐나갈까?ex) DB 두 개 쓰고, 서로 다른 언어 주고받고 하는 것들

TIL 2024.08.11

한화시스템 SW캠프 9기 8월 2주차 회고록

1. Weekly I Learned[24.08.05] : JDBC(sql injection, DML)[24.08.06] : Servlet Lifecycle[24.08.07] : Servlet(Redirect, Cookie, Session, Filter)팀 기능회의,,[24.08.08] : Spring Start(IoC Container)Spring에 새로운 단어들이 너무 튀어나와 어지럽고, 너무 긴 팀 회의가 너무 힘드네,,[24.08.09] : (DI(Dependency Injection)오늘은 개인적으로 공부할 시간이 있어서 너무 좋았다. 2. 이번주 회고이번주 회고를 진행하기 전에저번주 회고를 쓰고 그 다음날 월요일에 심적으로 뭔가 다운 되어있었는데, 오후에 비가 와서 홀딱 젖어버려서 매우매우 기..