Spring, Java 개발자 입니다

Spring/DI

의존관계 주입

의존관계의 주입방법은 크게 4가지 존재. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 생성자를 통해서 의존 관계를 주입 받는 방법이다. 생성자 호출 시점에서 딱 1번만 호출되는 것이 보장된다. 불변, 필수 의존관계에 사용된다. 한번 호출이 되면 바뀌면 안된다. 생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동 주입 된다. (요즘에는 이렇게 사용한다는데 흠 나는 명시하는게 더 좋을것 같음.) 수정자 주입(setter 주입) setter라 불리는 필드의 값을 변경하는 수정자 메서드를 통해서 의존관계를 주입하는 방법이다. 선택, 변경 가능성이 있는 의존관계에 사용 JAVA Bean Property 규약의 수정자 메서드 방식을 사용하는 방법이다. @Autow..

Spring/Java bean

BeanFactory와 ApplicationContext 차이

BeanFactory 스프링 컨테이너의 최상위 인터페이스 스프링 빈을 관리하고 조회하는 역할 담당. getBean() 제공 ApplicationContext BeanFactory 기능을 모두 상속받아서 제공. ApplicationContext 가 상속받는 인터페이스 BeanFactory MessageSource : 메세지 소스를 활용한 국제화 기능 EnvironmentCapable : 환경 변수 (로컬, 개발, 운영등을 구분해서 처리) ApplicationEventPublisher : 이벤트를 발행하고 구독하는 모델을 편리하게 지원 ResourceLoader : 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회 대부분 BeanFactory를 직접적으로 사용할 일은 거의 없고 부가 기능이 포함된 Ap..

Spring/DI

의존관계 주입 DI(Dependency Injection)

의존관계 주입 DI(Dependency Injection) 행위의 동작을 나타내는 클래스는 실제 어떤 구현 객체가 사용될 지 모르도록 인터페이스에 의존해야 한다. 의존관계는 정적인 클래스 의존 관계와, 실행 시점에 결정되는 동적인 객체(인스턴스) 의존 관계 둘을 분리해서 생각해야 한다. 정적 클래스 의존관계 클래스가 사용하는 import 코드만 보고 의존관계를 쉽게 판단할 수 있다. 클래스 다이어 그램을 살펴보면 쉽게 알 수 있다. 하지만 이러한 클래스 의존관계만으로는 실제 어떤 객체가 주입이 될지 알 수 가 없다. 동적 클래스 의존관계 애플리케이션 실행 시점(런타임)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결 되는 것을 의존관계 주입이라 한다. ..

개발 공부

좋은 객체 지향 프로그래밍 ②

SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP : Single Responsibility Principle 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는것이 모호한데 클 수 도 있고 작을 수도 있으며 문맥과 상황에 따라서 다르다. 따라서 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른것이다. OCP : Open/Closed Principle 개방-폐쇄 원칙 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있다. 다형성을 활용하여 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현한다. 이 부분에서 문제점이 약간 발생하는데 구현 객체를 변경하려면 클라이언트 코드를 변경해..

개발 공부

좋은 객체 지향 프로그래밍 ①

스프링의 핵심 개념, 컨셉 ??? 스프링은 자바 언어 기반의 프레임워크. 자바 언어의 가장 큰 특징인 객체지향을 담는다. 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크. 스프링은 좋은 객체 지향 어플리케이션을 개발할 수 있게 도와주는 프레임워크. 기존의 개발 성향은 EJB에 종속이 되서 객체지향의 좋은 특징들을 잃어버리게 됨 → 그것을 탈피하기 위해서 Spring을 개발하여 객체 지향 중심적인 설계를 하도록 함. 좋은 객체 지향 프로그래밍이란? 흔히 아는 객체지향의 정의 말고 key word 로 생각해보자. 객체의 모임, 객체의 메세지, 유연성, 변경의 용이 → 레고 블록을 조립하듯이, 컴퓨터 부품을 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 즉 객체지향의..

프로젝트

Cycle GAN을 이용한 인공지능 네트워크 설계

Cycle GAN을 통해 낮의 이미지를 밤으로 밤의 이미지를 낮으로 변환하는 네트워크를 설계한다. 인공 신경망에서는 벡터의 형태로 입력된 데이터를 전달 받고 각각의 입력에 웨이트(Weight)라는 가중치를 곱하고 합산, 이후 바이어스 까지 더하는 과정을 통해 실제 뉴런과 비슷한 인공 신경망을 구성하게 되고 이러한 여러 개의 인공 신경망들을 겹쳐서 많은 층을 만들어 내는 과정을 통해 네트워크를 설계하면 아래와 같은 딥러닝 네트워크(Deep Neural Network)가 구성되게 된다. 이러한 딥러닝 네트워크를 이미지 변환을위한 네트워크로 변환하기 위해 합성 곱 신경망(Convolution Network)이라는 개념을 통해서 네트워크를 변환시킨다. 일반적 GAN 은 Generator를 통해 실제 이미지를 생..

프로젝트

공개SW 3DS 창업아이디어 경진대회[과학기술정보통신부]

후기. 일단 본선 진출 이후 실제 제작을 할 수 있는 실현 가능성에 가장 큰 무게를 두고 프로젝트를 진행했다. 실제 앱 개발에 필요한 오픈소스들을 모두 확인하고 어도비를 이용하여 와이어 프레임을 만들어서 실제 동작 모형을 직접 보여주는 것을 중심으로 PT 발표를 시작했다. 결과 피드백은 서비스의 방향성이 일반인을 대상으로 하는 것보다는 특정 단체나 혹은 회사를 대상으로 하는 것이 더 사업 가능성이 높다는 점 그리고 단점으로는 창의성이 부족하다는 점이 아쉬웠다고 했다.

프로젝트

Spring 쇼핑몰 관리자 서버 구현하기

환경 및 언어 IntelliJ IDEA, Spring Boot, MySQL, JAVA 프로젝트 목표 쇼핑몰 관리자 서버를 구현하여 어떠한 유저가 어떤상품을 구매했는지를 상세하게 확인한다. GET 매핑을 통하여 user의 아이디를 통해 해당 user에 대한 정보를 나타내고 그룹별 아이템에 대한 정보를 순차적으로 가져온다. user : 사용자 정보 item : 상품 정보 category : 상품 카테고리 정보 order_detail : 상품 주문 정보 order_group : 상품 그룹 정보 partner : 파트너 정보 admin_user : 관리자 정보 study 패키지 DB table 관계 실행 결과 Chrome 환경에서 Talend API Tester를 확장 설치하여 user 1의 주문 정보를 받아오..

소소한 이야기

북한산 등산, 내시묘역길

오랜만에 등산을 했습니다. 갑작스럽게 등산을 하자는 제안에 운동화에 바람막이 하나 걸치고 출발했는데 색다른 일상에 기분이 좋았습니다. 차를타고 30분을 달려 북한산 아래에 도착해서 등산을 시작했는데 바람도 좋고 햇빛도 좋았지만 아쉽게도 미세먼지가 너무 많아서 공기는 좋지 않았습니다. 마스크를 쓰고 올라가야 하니 좀 답답한 느낌이었습니다. 곳곳에 핀 진달래가 너무 이쁘고 봄이 온것 같은 느낌이 들었습니다. 한 시간을 좀 넘게 정상에 도착할 수 있었습니다. 미세먼지 때문에 대기가 맑지 않아서 사진도 잘 안나온것 같아서 아쉽습니다. 오랜만에 등산을 하니 그래도 마음이 뻥 뚤리고 리프레쉬 되는 기분이 들어서 좋았습니다.

소소한 이야기

정보처리기사 20년도 4회 최종 합격 후기

20년도 정보처리기사가 개편이 되었다. 나는 20년 이전에 정보처리기사를 시험본적이 없기 때문에 난이도가 상승했는지 혹은 하락했는지 판단할 수 없으나 많은 인터넷 후기를 보면 대부분 난이도가 올라갔다고 한다. 주변에서는 개정 전 정보처리기사 시험을 본 사람들이 많아서 정보처리기사에 대한 난이도를 엄청 쉽다고 말하지만 올해 합격률을 본다면 좀 충격적이긴 하다. 내가 시험치른 20년도 정보처리기사 4회 필기 합격률은 52.5%, 실기 합격률은 13% 였다. 4회 실기 합격률은 그나마 10%를 넘어가지만 20년도 1회는 실기 합격률이 5%였다. 실제로 시험을 보면서 필기와 실기 둘다 쉽다고 생각하지 않았다. 특히 실기는 오히려 난이도가 높아서 문제를 푸는데 어려움이 있었다. 시험 준비 기간은 필기 3주, 실기..

수달하나
'분류 전체보기' 카테고리의 글 목록 (10 Page)