반응형
목록
java (139)
[꼼꼼한 개발자] 꼼코더

🍃 스프링이 동작하면서 생기는 일 작성한 2개의 클래스와 ‘root-context.xml’이 어떻게 동작하는지 이해하기 위해서는(이전 글 참고) 스프링과 함께 시간의 순서대로 고민해 보아야 한다. 스프링이 동작한다는 가정하에 안에서 어떤 일들이 벌어지는지 그림으로 정리하면 다음과 같이 표현할 수 있다. 🎨 그림 이야기 설명 🎅🏻 ApplicationContext : "엣헴 나는 객체들을 관리해주는 컨텍스트지, 나는 root-context.xml라는 설정 파일 기준으로 할일을 정하지!" (코드 실행) 🎅🏻 ApplicationContext : "어디보자~(root-context.xml을 읽으며) 으흠 내가 관리할 객체는 요 두 놈인가?(Restarurant, Chef)" (@setter, @date 등 확..

💉 의존성 주입 테스트 작성된 프로젝트를 이용해서 간단하게 의존성에 대한 기능을 작성하고 테스트해보자. 예제의 내용은 레스토랑(Restaurant) 객체를 만들고 레스토랑에서 일하는 셰프(Chef) 객체를 주입하는 예재를 작성하려고 한다. 스프링에서는 ‘생성자를 이용한 주입’과 ‘setter 메서드를 이용한 주입’으로 의존성 주입을 구현한다. 구현시 설정방법 은 주로 XML이나 어노테이션을 이용해서 처리한다. 예제는 'Lombok' 라이브러리를 이용하여 setter 메서드를 자동으로 구현하고 spring-test 라이브러리인 'Log4j'를 이용하여 스프링의 동작을 테스트 한다. 따라서 pom.xml에서 Lombok 라이브러리와 Log4j 라이브러리를 추가후 진행 해보자. 👨🏻💻 실습 준비 (라이브러리..

🖐 스프링의 주요 특징 5가지 POJO 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP(Aspect-Oriented-Programming) 지원 편리한 MVC 구조 WAS의 종속적이지 않은 개발 환경 👨🏻💻POJO (Plain Old Java Object) 기반의 구성 스프링은 성격 자체가 가벼운 ‘경량 프레임워크’ 이지만, 내부에서는 객체 간의 관계를 구성할 수 있는 특징을 가지고 있다. 스프링은 다른 프레임워크들과 달리 이 관계를 구성할 때 별도의 API 등을 사용하지 않는 POJO(Plain Old Java Object)의 구성 만으로 가능하도록 제작되어 있다. 쉽게 말해서 ‘우리가 일반적인 Java 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용’할 수 있다는 ..
🏃🏻 03장의 학습 목표 스프링 프레임워크를 이용해서 ‘의존성 주입’에 대한 이해와 테스트 스프링에서 XML을 이용하는 객체 관리 방법 스프링의 테스트 환경 구축 🧙🏻♂️ 스프링 프레임워크의 간략한 역사 프레임워크란 말 그대로 ‘뼈대나 근간을 이루는 코드의 묶음’이라고 할 수 있다. 왜 이 뼈대가 필요할까? 개발자의 개개인 능력차이가 존재한다. 따라서 개발자 구성에 따라 프로젝트 결과 역시 차이를 낳는다. 프레임 워크는 바로 이런 상황을 극복하기 위한 코드의 결과물이다. 프레임워크를 이용한다는 의미는 프로그램의 기본 흐름이나 구조를 정하고 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발하게 된다. 👀 프레임워크 최대의 장점은? 프레임워크의 가장 큰 장점은 개발에 필요한 구조를 이미 코드로 ..
❓당신은 CBD, SOA가 어려운가? 🧱 CBD Component Based Devlopment의 약자로, 번역하면 컴포넌트 기반 개발이 된다. CBD는 애플리케이션을 통째로 개발하지 않고, 의미 있는 단위로 구분하여 그 단위를 하나씩 부품으로 개발해 마치 레고 블록을 쌓아 올리듯 부품을 결합해 제품을 완성하자는 방법론이자 기법이다. 제품이 아니다. 🧑🏻🔧SOA Service Orented Architecture의 약자로, 번역하면 서비스 중심 구조 또는 의역하면 서비스 지향 구조라고 할 수 있다. 개발자 입장에서의 개발이 아니라 실제 현실의 업무를 기준으로 개발하자는 사상이다. 제품이 아니다. 👀 그렇다면 이 같은 블록화 개발, 서비스 지형적인 개발이 이전에는 존재하지 않았던 것일까? 분명히 존재했었..
🎬 시작 스프링은 과거부터 현재까지 프로그래밍 발전사에서 그 정점에 있다고 해도 과언이 아니다. 스프링을 학습하기 전 과거에 어떤 기술들이 있었고 그 의미를 빠르게 학습해 보도록 하자. 🤖 기계어 - 0과 1의 행진 / 너무나 비인간적인 언어 기계어는 기계가 이해하는 유일한 언어이다. 2진 숫자인 0과 1로만 표현된다. 기계어 코드는 CPU에 따라 다르다. (’ 에드삭 전용’ 기계어 ↔ ’ 유니박 전용’ 기계어 서로 간에 호환 불가) 에드삭(EDSAC) 전용 기계어 : 1 +3 01010101 00000001 00011001 유니박(UNIVAC) 전용 기계어 : 1 + 3 110111100 00011000 10011000 애드삭 : 모리스 월키스 제작, 2진법을 적용한 세계 최초의 프로그램 내장 방식 전..

💬 소감 많은 주변 지인들을 볼 때 이런 경우 포기하는 경우가 많다. 하지만 개발자가 되고 싶다면 오히려 이걸 즐겨야 한다고 생각했고 나 또한 즐기면서 구글링에 임했다. 구글링을 하면서 얻어가는 내용(지식)들이 많았고 그 끝에 성공(정상작동)의 결과를 맛봤을 때 나름 쾌감(?)도 있는 거 같다. 이제 내일은 또 어떤 시련이 닥칠지 걱정과 설렘이 동반한다.. (소감 부터 적고 싶어 미리 적어봤다) 🎬 시작 이제 새로운 교재로 다시 스프링을 시작했다. 먼저 말하자면 나는 MAC M1칩을 사용한다. 이전 ‘김영환’님의 영상 강의의 개발환경은 아래와 같고 OS : MAC Tool : IntelliJ 새로운 교재에서의 개발환경은 아래와 같이 기존과 많이 달랐다. OS : Window Tool : Eclipse o..
💬 지금까지 나는 기존에 인프런에서 ‘김영환’님의 스프링 강의를 들었었다. 하지만 초창기에는 “어렵다..이게 도대체 뭐지..” 싶었다. 따라서 나는 각 코드마다 해석하기 바빴고 이해도는 매우 낮았던 나는 결과적으로 느꼈었다.. 숨겨졌던 ‘나의 기본기 부족’이 수면 위로 올라온 것이었다. 나는 그때 강의를 멈추고 기본기를 다시 다지러 갔어야 했었다..하지만 학습 진도에 눈이 먼 나머지 결국 강의를 이어서 들었고 중후반에 들어서 나의 모습은 clone 코딩만 하는 모습이었다. 🍃 변화 비록 비효율적인 공부법이어도 얻어가는 것들도 있었다.. SOLID, 의존성 등등.. 하지만 스스로를 객관적으로 보았을 때 “너 스프링 할 줄 알아?”라고 묻는다면 나의 답변은 ‘아니’다. 이 부분이 너무 크게 다가왔었다. 나는..