반응형

분류 전체보기 383

[토비의 스프링 3.1 Vol 1] 7장. 스프링 핵심 기술의 응용 (~7.2 인터페이스의 부니롸 자기참조 빈)

7.1 SQL과 DAO의 분리 SQL을 dao에서 분리하는 작업이 남았다. 7.1.1 XML 설정을 이용한 분리 개별 SQL 프로퍼티 방식 SQL은 문자열로 되어 있으니 설정파일에 프로퍼티 값으로 정의해서 DAO에 주입할 수 있다. SQL 맵 프로퍼티 방식 SQL을 하나의 컬렉션으로 담아주는 방법을 선택한다. 맵을 이용하면 키 값을 이용해 SQL문장을 가져올 수 있다. 일일이 프로퍼티로 등록하는 방법에 비해 작업량도 적고 코드도 간단하다. 대신 오타와 같은 실수가 있어도, 해당 메소드가 실행되기 전에는 오류를 확인하기 어렵다. 7.1.2 SQL 제공 서비스 SQL과 DI 설정정보가 섞여 있으면 관리하기에도 좋지 않다. 스프링의 설정파일로부터 생성된 오브젝트와 정보는 애플리케이션을 다시 시작하기 ..

[토비의 스프링 3.1 Vol 1] 6장. AOP (6.7 ~ 6.8)

6.7 애노테이션 트랜잭션 속성과 포인트컷 가끔은 클래스나 메소드에 따라 제각각 속성이 다른, 세밀하게 튜닝된 트랜잭션 속성을 적용해야 하는 경우도 있다. 이런 경우라면 메소드 이름 패턴을 이용해서 일괄적으로 트랜잭션 속성을 부여하는 방식은 적합하지 않다. 기본 속성과 다른 경우가 있을때마다 일일이 포인트컷과 어드바이스를 새로 추가해줘야 한다. 6.7.1 트랜잭션 애노테이션 @Transactional 타깃은 메소드, 클래스, 인터페이스에 사용할 수 있다. 이때 사용되는 포인트컷은 TransactionAttributeSourcePointcut이다. /* * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache L..

[토비의 스프링 3.1 Vol 1] 6장. AOP (6.6 트랜잭션 속성) + spring boot @Transactional 옵션

6.6 트랜잭션 속성 6.6.1 트랜잭션 정의 DefaultTransactionDefinition이 구현하고 있는 TransactionDefinition 인터페이스는 트랜잭션 동작방식에 영향을 줄 수 있는 네 가지 속성을 정의하고 있다. 1) 트랜잭션 전파 트랜잭션 경계에서 이미 진행중인 트랜잭션이 있을때/없을때 어떻게 동작할지 결정하는 것 PROPAGATION_REQUIRED 가장 많이 사용되는 트랜잭션 전파 속성진행 중인 트랜잭션이 없으면 새로 시작하고, 이미 시작된 트랜잭션이 있으면 이에 참여한다. DefaultTransactionDefinition의 트랜잭션 전파 속성PROPAGATION_REQUIRES_NEW항상 새로운 트랜잭션을 시작한다. PROPAGATION_NOT_SUPPORTED 트랜잭션..

[토비의 스프링 3.1 Vol 1] 6장. AOP (6.5 스프링 AOP)

6.5 스프링 AOP 6.5.1 자동 프록시 생성 분리해낸 트랜잭션 코드는 투명한 부가기능 형태로 제공돼야 한다. 투명하다는 건 부가기능을 적용한 후에도 기존 설계와 코드에 영향을 주지 않아야 한다는 것이다. 투명한 부가기능을 적용하는 과정에서 발견했던 거의 대부분의 문제는 해결했다. 타깃 코드는 여전히 깔끔한 채로 남아 있고 부가기능은 한 번만 만들어 모든 타깃과 메소드에 재사용 가능하고 타깃의 적용 메소드를 선정하는 방식도 독립적으로 작성할 수 있도록 분리되어 있다. 프록시 팩토리 빈 방식의 접근 방법의 두 가지 문제중 부가기능이 타깃 오브젝트마다 새로 만들어지는 문제는 ProxyFactoryBean의 어드바이스 통해 해결했다. 남은 것은 부가기능의 적용이 필요한 타깃 오브젝트마다 거의 비슷한 내용의..

[토비의 스프링 3.1 Vol 1] 6장. AOP (6.4장 스프링의 프록시 팩토리 빈) + spring boot @Transactional

6.4 스프링의 프록시 팩토리 빈6.4.1 ProxyFactoryBean 스프링은 일관된 방법으로 프록시 만들 수 있게 도와주는 추상 레이어 제공 생성된 프록시는 스프링의 빈으로 등록돼야 한다. 스프링의 ProxyFactoryBean은 프록시를 생성해서 빈 오브젝트로 등록하게 해주는 팩토리 빈이다. 기존에 만들었던 TxProxyFactoryBean과 달리, ProxyFactoryBean은 순수하게 프록시를 생성하는 작업만을 담당하고 프록시 통해 제공해줄 부가기능은 별도의 빈에 둘 수 있다 .ProxyFactoryBean이 생성하는 프록시에서 사용할 부가기능은 MethodInterceptor인터페이스를 구현해서 만든다. 기존에 만들었던 TxProxyFactoryBean 스프링의 ProxyFactoryBe..

[토비의 스프링 3.1 Vol 1] 6장. AOP (~6.3)

6장 AOP 스프링에 적용된 가장 인기 있는 AOP의 적용 대상은 바로 선언적 트랜잭션 기능이다. 6.1 트랜잭션 코드의 분리 6.1.1 메소드 분리 비즈니스 로직 코드 사이에 두고 트랜잭션 시작과 종료를 담당하는 코드가 앞뒤에 위치하고 있다. 트랜잭션 경계설정의 코드와 비즈니스 로직 코드 간에 서로 주고받는 정보 없이 독립적인 코드다. 비즈니스 로직을 담당하는 코드를 메소드로 추출해서 독립시킨다. 6.1.2 DI를 이용한 클래스의 분리 여전히 트랜잭션을 담당하는 기술적인 코드가 UserService 안에 있다. 간단하게 트랜잭션 코드를 클래스 밖으로 뽑아내면 된다. DI의 기본 아이디어를 이용하면 된다. 실제 사용할 오브젝트의 클래스 정체는 감춘 채 인터페이스 통해 간접으로 접근하는 것이다. 그 ..

뉴스레터 25'04'18 - 구글, 제미나이 ‘비오 2’ 영상 AI 공식 통합 출시

어피티 // 20250418구글, '제미나이'에 '비오2' 통합…판 커지는 'AI 모델' 경쟁 구글, '제미나이'에 '비오2' 통합…판 커지는 'AI 모델' 경쟁구글이 지난해 말 공개한 영상 생성 인공지능(AI) 모델 ‘비오 2’를 정식 출시했다. 별도 앱이 아닌 자사 주력 모델인 ‘제미나이’에 통합하는 방식으로 빅테크의 AI 통합 움직임을 따랐다. 15일n.news.naver.com구글, 제미나이 ‘비오 2’ 영상 AI 공식 통합 출시🆕 구글이 텍스트 프롬프트만으로 8초 분량의 영상을 생성하는 ‘비오 2’를 주력 AI 모델 제미나이에 정식 통합했다.🔄 이용자는 제미나이 어드밴스드 구독을 통해 모델 메뉴에서 ‘비오 2’를 선택한 뒤 간편하게 동영상을 제작할 수 있다.🎨 이미지 생성 모델 ‘위스크’와..

뉴스레터 2025.04.18

뉴스레터 25'04'17 - 🇺🇸 美, 다시 막은 엔비디아 H20…中 AI 견제 수위 ↑

어피티 // 20250417https://n.news.naver.com/mnews/article/023/0003899809?sid=105 美, 엔비디아의 ‘저사양 AI 반도체’ 중국 수출 다시 제한H20 수출 규제에 주가 6% 급락 미국 정부가 엔비디아의 중국용 저사양 인공지능(AI) 반도체인 ‘H20’의 대중 수출을 제한하기로했다. 이 제품은 최근 규제가 철회된 것으로 알려졌지만, 최근 중국n.news.naver.com🇺🇸 미국, 엔비디아의 중국용 AI 반도체 'H20' 수출 규제✔️ 수출 규제: 미국 정부는 엔비디아의 저사양 AI 반도체인 ‘H20’의 중국 수출을 제한하기로 결정. 이 반도체는 중국의 수퍼컴퓨터에 사용될 가능성이 있음.✔️ 배경: 최근 중국이 미국에 ‘맞불 관세’를 부과하는 등의 ..

뉴스레터 2025.04.17

뉴스레터 25'04'16 - 오픈AI, 영리 전환 압박 속 내부 분열과 법정 공방 격화

어피티 // 20250416오픈AI 전 직원들…머스크 편들고, AI 스타트업 창립 나서 오픈AI 전 직원들…머스크 편들고, AI 스타트업 창립 나서챗GPT 개발사 오픈AI의 샘 올트먼 최고경영자(CEO)와 테슬라의 일론 머스크 CEO가 ‘오픈AI의 영리 법인 전환’을 두고 소송전을 벌이는 가운데 오픈AI에 몸담았던 직원들이 머스크 편을 들고 나섰n.news.naver.com⚖️ 법인 전환 소송 및 법정 공방• 오픈AI는 원래 비영리 운영 원칙을 고수하기로 약속했으나, 최근 투자 유치와 경쟁 심화로 영리 법인 전환 압박을 받고 있음• 샘 올트먼 CEO와 머스크가 각각 다른 입장을 내세워 법정 공방을 벌이고 있으며, 머스크는 비영리 운영 약속 위반을 이유로 소송을 제기함• 오픈AI는 머스크가 제기한 가짜 인..

뉴스레터 2025.04.16

뉴스레터 25'04'14 - "생성형 AI가 비판적 사고에 미치는 영향 중" 일부 발췌

https://0x1.pt/2025/04/06/the-insanity-of-being-a-software-engineer/ The Insanity of Being a Software EngineerIs something I think about often because I can’t help but wonder if most other jobs are like this.0x1.pt 💻 소프트웨어 엔지니어라는 직업, 왜 이렇게 힘들까?✔️ 시작부터 복잡함: 단순히 한두 개의 언어만 아는 것으로는 부족함. Rails, Django, Laravel 등 회사마다 다른 프레임워크를 알아야 하고, CSS와 JavaScript도 필수임.✔️ 풀스택의 탄생: React의 등장 이후, 프론트엔드와 백엔드 모두 다룰 줄..

뉴스레터 2025.04.14
반응형