일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 임팩트커리어스터디
- IntelliJ
- 머신러닝
- valid
- requestbody
- 개발필독서
- til
- 클린코드
- Deep Learning
- Dao
- 스프링스터디
- 딥러닝
- 스프링프레임워크
- 인공신경망
- REST API
- 스프링어노테이션
- JPA
- mysql
- 노개북
- spring
- 객체지향특징
- 노마드코더
- 북클럽
- 스프링컨테이너
- 개발서적
- 북스터디
- springboot
- 인텔리제이
- NullCheck
- Machine Learing
- Today
- Total
목록Back (12)
dev.jaieve 공부기록
회사에서 개발을 할 때 마이크로서비스 구조로된 프로램을 개발하고 있어서 동시에 3개의 프로젝트를 run 한다. 그런데 어제까지만 해도 잘 실행되던 2개의 프로젝트를 run 했는데 다음과 같은 오류가 발생했다. 해당 메인 Applicaiton.java를 가서보니 @SpringApplicaiton 애너테이션이 제대로 import되지 않는 듯 빨간줄이 쳐져있었다. alt + Enter로 추천 해결방법을 적용하려고 했지만 dependency는 추가되지 않았다. 그래서 dependency를 설정하는 build.gradle를 확인해봤다. 하지만 그런데 문제는 build.gradle이 변경된적은 없다는 것... 프로젝트를 clean하고 다시 build해봤지만 오류는 여전했다. 그래서 구글링을 통해서 다음과 같은 방법..
1. 다형성(polymorphism) 실제 세상을 비유로 들었을 때, 세상은 역할과 구현으로 구분할 수 있다. 키보드라는 개념과 다양한 모델들, 마우스라는 개념과 다양한 제품 모델들 과 같은 세상의 표준 인터페이스들 공연 무대 남주 및 여주(역할)에 더블캐스팅된 배우들(구현) 운전자(역할)와 자동차(역할). 그리고 다양한 자동차 모델(구현) a. 다형성 장점 프로그램을 사용하는 클라이언트는 대상의 역할만 알면된다. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다. b. 객체지향언어인 자바의 다형성 역할 = Interface / 구현 = 구현객체(Class implements..
인프런의 스프링 핵심원리 기본편 강의를 들으면서 객체지향의 특징에 대한 내용을 공부했다. 자바 공부를 시작한 뒤 잊을만하면 들려오는 핵심 개념이라서 이번 기회에 정리해볼까 한다. 이 포스팅은 현재 읽고 있는 로버트 마틴의 에 나오는 해당 부분만 골라서 블로그에 모은 글을 짧게 정리하는 글이다. 캡슐화 캡슐화란 객체의 실제 구현을 외부로부터 감추는 방식을 말한다. 세상의 모든 프로젝트는 오픈소스와 라이브러리를 사용하고 있다. 우리가 만든 코드에 외부에서 들어온 코드를 깔끔하게 통합시키기 위해서는 경계를 잘 지어야 한다. a. 클린코드 8장 모호한경계를 구분짓기 - 우리 코드를 보호하기 에서는 특정 상황을 가정한다. 프로그램에 Senser객체(역할)가 있어 관리되고 있고, 이는 외부에서 사용되는 상황이다. ..
* 이 글은 howToDoInJava.com의 원문을 학습용으로 번역한 글로 잘못된 해석이 있을 수 있음을 사전에 알려드립니다! 1. Spring bean Stereotype Annotations 1.1 @Component 어노테이션 @Component 어노테이션은 Spring의 component-scanning 메커니즘에 의해 bean을 스프링컨테이너 ApplicationContext에 만들어 넣어준다. @Component public class EmployeeDAOImpl implements EmployeeDAO { ... } 1.2 @Repository 어노테이션 @Component 의 기본 특성에 DAO에 특화된 추가적인 기능을 제공하는 어노테이션으로 기능은 @Component와 거의 유사하다. ..
스프링 컨테이너란 스프링 컨테이너를 스프링의 Bean을 생성하고 관리한다. 기본적으로 빈은 싱글통으로 생성된다. 스프링 컨테이너는 2가지 유형이 있다고 한다. Bean Factory ApplicationContext Bean Factory 스프링 설정파일(@Configuration)에 등록된 Bean 객체를 생성하고 관리하는 기본적인 기능을 제공하는 IoC컨테이너이다. 하지만 실제 Bean의 생성 및 관리에는 추가적 기능이 필요해서 스프링컨테이너 두 번째 유형이자 Bean Factory를 상속받아 확장된 ApplicationContext을 주로 사용한다고 한다. ApplicationContext란? 컨테이너의 기본적인 기능(Bean 생성 및 관리)뿐만 아니라 트랜잭션 관리, 메시지 기반의 다국어 처리, ..
개념 및 정의 비교 Database 데이터베이스는 체계적인 데이터 모음으로 데이터 저장 및 조작을 지원한다. 스토리지에 저장된 데이터를 더욱 사용하기 쉽게 만들어주는 것이 데이터베이스 서버라고 생각하면 된다. Storage 컴퓨터에 데이터를 저장하는 저장소의 역할을 수행하는 부품으로, 하드디스크와 동일한 역할을 수행하는 부품이다.(비휘발성 기억장치) 스토리지는 직접 서버에 연결할 수 있고, 대용량의 데이터를 저장하기 위해 별도의 스토리지용 네트워크를 구성할 수 도 있다. Storage에도 종류가 다양하며(DAS/NAS/SAN), 연결방식 등에 의해 구분된다. 스토리지는 하드웨어 기반의 장비이기때문에 장비의 성능에 따라 혹은 안정성에 따라서 성능이 좌지우지된다. 차이점 1. Physical vs Logic..
Null 체크부터 Exception 까지의 흐름 DTO란? Data Transfer Object의 약자로, 컨트롤 layer(controller)에서 받아온 데이터를 서비스 layer(service)로 넘겨줄 때 이용한다. HTTP 통신시 API의 request와 response를 통해 Object가 호출된다. 하지만 Object의 domain에서의 여러 변수가 항상 필요하지는 않다.(ID만 가져오거나, nickname만 필요하거나 등등) API마다 request 및 response하는 parameter가 다르기 때문에 필요한 데이터만 정의되는 클래스가 필요하다. DTO가 바로 그 역할을 한다. DTO에서 필수 값에 대한 조건 체크를 하는 것은 DTO에서 Domain으로 변환하는 로직이고, 요청된 Dom..
JPA의 DTO와 JSP의 DAO의 차이점 DTO는 Controller와 Service 계층을 이어주는 객체이고, DAO는 서비스와 DB를 이어주는 객체이다. 때문에 DTO를 사용하는 경우 DB와 연결되는 계층이 필요한데 domain이 그 역할을 맡는다. 이렇게 이해하면 초보자이거나 입문자 입장에서는 Entity == DAO 라고 쉽게 이해할수 있지만 DAO와 domain의 Entity는 의미론적으로 다르기 때문에 같다고 생각해서는 안된다. DAO는 연결할 DB의 설정정보와 같은 정보들을 갖고 있는 계층이다. 하지만 JPA의 경우 이런 db properties를 application.properties 또는 application.yml이란 파일에 설정해두고 JPA가 알아서 Connection 객체를 생성..
JAR, WAR, EAR는 모두 Java의 jar 툴을 이용하여 생성된 압축(아카이브)파일이다. (JDK에서는 각 압축파일들에 접근하여 압축 해제없이 사용할 수 있음.) 압축 파일의 주 역할은 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성파일 등)들을 패키징하는 것이다. Maven 을 이용하여 프로젝트 빌드를 관리했을 경우 다운로드된 라이브러리들은 class파일들이 묶인 jar파일로 구성되어 있는 것을 확인할 수 있다. 그리고 서비스 배포시에는 프로젝트를 WAR 포맷으로 묶어서 /wepapps 등의 지정된 경로에 넣고 Tomcat 등의 웹 컨테이너(Web container)를 이용하여 deploy하는 식으로 서비스를 많이 올린다. JAR(Java Archive) .jar 확장자..
국비훈련과정을 이수하면서 이클립스를 이용한 Spring Maven 기반의 프로젝트를 수행해왔다. 최근 코멘토를 통해 개발직 현업 실무에서 쓰는 환경을 따라해보는 기회를 얻으면서 인텔리제이를 설치하고 Gradle 기반의 프로젝트를 처음 접하게 됐다. Maven은 pom.xml로 라이브러리를 관리하던것과 달리 application.properties(또는 .yml)과 build.gradle로 dependencies를 관리하는 것을보며 보다 편하게 개발환경을 세팅할 수 있었다. 하지만 그 차이점을 몰라서 블로그에 정리하면서 빌드 관리도구에 대해 이해해보고자 한다. '빌드'와 '빌드 툴' 에 대한 이해 빌드란 소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 과정을 말한다. 예를 들어 게임회사에서 게임을 ..