성실한 사람이 되자

성실하게 글쓰자

This is spear

분류 전체보기 112

SPRING - 스프링을 이용해 의존성 주입을 할 수 있을까?

스프링을 이용해 의존성 주입을 할 수 있을까? 나는 의존성 주입을 공부하기 전에 DI라는 단어를 들었을 때, 단순히 Dependency의 약자인 줄 알아서 pom.xml에 존재하는 의존성 주입을 말하는 줄 알았다. 그래서 스프링이 직접 해주는 의존성 주입은 이 파일에 있는 게 전부인 줄 알았지만 그게 아니었다. 외부에서 의존성 주입을 통해 객체 지향 설계를 할 수 있도록 스프링이 도와주는 방법에 대해 공부를 하면서, DI의 존재를 알게 됐고, DI가 의존성 주입의 약자라는 것을 알게 된 순간부터 나는 DI가 정말 대단한 방식이라는 것을 알 수 있었다. 그래서 나는 훌륭한 DI에 대해 잘 알기 위해서 스프링이 제공하는 스프링 컨테이너를 이용해 DI 하는 방법을 알아보려고 한다. 방금까지 공부했던 AppCo..

JAVA_SPRING 2021.12.19

SPRING - 자바는 의존성 주입을 이용해 SOLID 원칙 중 DIP와 OCP를 지킬 수 있다.

스프링 없이 SOLID 원칙을 잘 해결할 수 있을까? 본론부터 말하자면 외부에서 의존 관계를 설정해준다면 해결할 수 있다고 생각한다. 각 구현체들은 의존 관계를 설정해주는 클래스에 의해 외부에서 참조 객체들을 선택받아 생성할 수 있다. 그렇게 되면 우리는 해당 구현 객체를 수정하지 않고도 참조 객체를 마음대로 교체할 수 있다. 내가 어느 부분에서 SOLID 원칙을 지키지 않았고, 그 부분을 어떻게 해결했는지 아래에 설명했다. 의존성 주입을 하지 않은 나는 SRP, DIP, OCP 원칙에 어긋나는 설계를 하고 있다. 인터페이스를 이용해 역할과 기능을 분리했는데... 우리가 추구하는 객체 지향 프로그래밍에서 세가지의 원칙을 어기고 있다. 우리가 어긴 세가지 원칙은 SRP, DIP 그리고 OCP 원칙이다. S..

JAVA_SPRING 2021.12.19

SPRING - 스프링 빈(Spring Bean)이란?

스프링 빈에 대한 나의 고찰 빈이란 무엇인가..? 자바 빈을 뜻하는 것일까? 우선 스프링 빈에 대해 고민하기 전에 빈은 어디서 나온 말일까 고민하게 됐다. 내가 생각하기에는 자바에서 빈을 사용할 수 있었기에 스프링에서도 빈을 사용할 수 있지 않을까 생각을 하게 됐기에 자바 빈즈에 대해 짤막하게 찾아보기로 했다. 자바 빈은 클래스 안에 프로퍼티를 저장한 후 객체를 만들기 위한 클래스이다. 즉, 객체를 만들기 위한 틀인 클래스를 자바 빈이라고 부르는 것처럼 보였다. 자바 빈에 대해 공부를 하면서 자바 빈이랑 스프링 빈은 같을까 라는 생각이 들었다. 스프링 IoC 컨테이너가 관리하는 자바 객체인 빈이랑 위에 설명하는 자바 빈은 같을까? 스프링 빈이란? Spring에서의 빈은 ApplicationContext가..

JAVA_SPRING 2021.12.19

스프링을 하기 전, 다형성을알아보자

다형성이란 무엇일까? 다형성은 객체 지향의 특징 중 하나이다. 객체 지향의 특징이라고 하면 캡슐화와 추상화, 상속 그리고 다형성이다. 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법을 다형성이라고 한다. 다형성을 잘 사용해보자! 다형성을 잘 사용하는 방법은 간단하다. 역할과 구현을 분리하는 방법이다. 아래 자바 언어를 이용해 역할과 구현을 분리하는 방법을 알아보자! 자바에서는 다형성을 어떻게 사용할 것인가? 자바 언어에서 다형성을 활용하면 인터페이스를 이용한 역할(기능)과 인터페이스를 상속받은 구현 객체를 이용해 역할과 구현을 분리해 다형성의 본질을 찾을 수 있다. 객체를 설계할 때 역할 부분인 인터페이스를 먼저 설계하고, 그 역할을 수행하는 구현 객체인 클래스를 만들자! 다형성을 설명하기 위해..

JAVA_SPRING 2021.12.11

스프링에서 좋은 객체 지향 설계의 5가지 원칙(SOLID)

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 개발자가 되어보세요! 📢 수강 전 www.inflearn.com 처음에는 스프링의 장점인 객체 지향 설계를 잘해보고 싶다는 생각을 해 스프링 강의를 찾아보고 있었다. 그렇게 인프런에 있는 김영한 님의 스프링 강의를 들으면서 객체 지향 설계 5가지 원칙을 배워 적용하고 ..

JAVA_SPRING 2021.12.11

좋은 객체 지향 설계에 대한 나의 고민

좋은 객체 지향 설계에 대한 나의 고민 혼자 개인 프로젝트를 준비하면서 제대로 설계하지 않고 코딩하려니 만들고 삭제하고를 반복하는데 시간을 많이 사용했다. 그러한 이유로 진행이 더뎌지고, 코드들은 점점 난잡해져 갔다. 어떻게는 무리하게 진행하다보니 작성한 의도도 모른 체 무분별하게 코드들을 작성해 나갔다. 코드들은 길어지고 점점 더 이해하기 어려워졌고, 테스트하는 동안 충돌되는 부분에서 어떤 오류가 났는지 찾기도 어려웠다. 이러한 문제들을 떠안으며 진행하기에는 불가능했기에 이번 실패로 인해 내가 부족하다는 것을 많이 느꼈고, 처음부터 다시 꼼꼼하게 확인해보자는 생각으로 이 문서를 작성한다. 처음의 나는 스프링 프레임워크가 어떻게 나를 도와주는지 생각하지 않고 단순히 실행만 되게 만들려고 했다. 이번 인프..

JAVA_SPRING 2021.12.11

코딩 테스트를 맛보면서... (실패한 경험담)

처음 해본 코딩 테스트😢 코딩 테스트를 처음 해보며 긴장도 많이 했지만, 설레기도 했다. 뼈저린 아픔 나름 열심히 준비했다고 생각했지만, 문제를 풀어보니 막상 그렇지 않다고 생각이 들었다. 약 한달의 시간을 준비하면서 많은 문제들을 풀어보지 못하였지만, 이번에 나온 문제들은 내가 충분히 풀 수 있을만한 문제라고 생각이 들었다. 그런 생각을 가졌다면 합격을 기원하는게 응당하지만 나는 이번 코테를 준비하면서 뼈 아픈 실패를 겪게 됐다. 그렇게 생각하는 이유 나는 남들보다 열심히 준비했다면 준비했고, 그렇지 않다고 하면 그렇지 않은 시간이었다. 문제들은 어렵지 않았지만, 코딩 테스트를 너무 얕보고 준비를 온전히 하지 않은 탓에 끝나자마자 내가 실수한 문제들이 많이 보였다. 이런 뼈 아픈 실패를 두 번 다시 겪..

Programming 2021.11.01

인텔리제이에서 스프링부트 Devtools가 실행되지 않을 때, spring boot devtools not running, In IntelliJ 2021.2 compiler.automake.allow.when.app.running disappear.

처음 인텔리제이에서 Devtools가 실행되지 않길래 의존성 주입이 잘못되거나 리로드 되지 않아서 문제가 생겼다고 생각했는데, 인텔리제이에서 자동적으로 classes파일에다가 저장하는 부분이 없어서 서버까지 영향을 주지 못했습니다. 다른 문서에서 보면 Registry에서 compiler.automake.allow.when.app.running 부분의 체크박스를 클릭해주면 된다고 적혀있지만 2021.2월 버전에는 존재하지 않았기에 다른 방법을 찾아봐야 했습니다. Build, Execution, Deployment > Compiler 에서 Build project automatically의 체크 박스를 선택해주세요. 맥에서는 Preferences, 윈도우에서는 Settings에서 Advanced Settin..

창업국가 - 2021.08.09

오늘 하루 읽었던 책의 감상 [책 제목] START-UP NATION(창업 국가) - 댄세노르, 사울 싱어 지음 [책 내용] 디아스포라, 훔친 비행기를 타고 디아스포라(Diaspora) - 팔레스타인 밖에 살면서 유대적 종교 규범과 생활습관을 유치하는 유대인 공동체 대한민국은 AI, 반도체와 같은 첨단 기술 분야에서 우수인력이 빠져나가는 '인재 유출' 때문에 성장력이 떨어지고 있다. 21세기는 국가에 종속되어 있는 우수 인재들의 존재가 곧 국가 경쟁력을 좌우한다고해도 과언이 아니다. 15년도에서 19년도만 해도 '두뇌 유출'에 포커스에 맞춰진 뉴스만 봐도 알 수 있다. 책의 저자는 대한민국과 같이 이스라엘을 비롯한 많은 나라들이 우수한 학자나 기업가들이 외국을 나가는 것을 안타까워하는 반면 '두뇌 유출'..

카테고리 없음 2021.08.09

OpenAPI 데이터를 자바를 이용해 데이터를 받기(POSTMAN을 이용해 공공데이터 오픈API에 데이터 요청, Java, OkHttp 이용)

공공데이터에서 활용 신청을 받은 후 POSTMAN, OkHttp, Java를 이용해 데이터를 받아보도록 하겠습니다. POSTMAN에서 Request 요청을 받을 데이터들을 다 작성한 후 코드 스니펫으로 Java - OkHttp를 선택해 코드를 직접 보면 됩니다. 아래와 같은 코드가 나옵니다. OkHttpClient client = new OkHttpClient().newBuilder() .build(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\n \"businesses\": " + " [\n " + " {\n " + " \"b_no\": \"000..

JAVA_SPRING/JAVA 2021.08.04