일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- LangChain
- redis
- 프로그래머스
- Scanner
- 백준알고리즘
- Apollo
- graphql
- mongodb
- mysql
- 조건문
- k8s
- MapReduce
- ai
- 스프링
- Docker
- bufferdreader
- Android
- Spring
- puppeteer
- 서버
- restapi
- TCP
- nodejs
- java
- 자바
- 스프링부트
- Mongoose
- java11
- HTTP
- eof
- Today
- Total
목록Spring (10)
자라나라 개발머리
2편 작성이 벌써 한 달이나 지났다. 기간 내에 완성은 했지만 캡스톤 개발 시작+다른 일로 포스팅을 열심히 미루다,, 더 이상 미룰 수 없다! 싶어서 작성한다. 저번에 스프링부트와 MySQL을 연결하고 테스트까지 해보았다. 오늘은 스프링부트로 작성한 REST API와 안드로이드 스튜디오를 Retrofit2를 이용해서 연결하고, 어플에서 전체회원을 조회해본다. 참고: https://velog.io/@re-deok/Android-Retrofit2%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-Android-Studio%EC%97%90-RESTful-API-%EC%97%B0%EB%8F%99 [Android] Retrofit2를 이용해서 Android Studio에 REST ..
참고: 1) 인프런 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' - 코드 참고 2) 스프링부트 - 10분만에 안드로이드 앱, 아이폰 앱에서 사용할 수 있는 Restful API 서버 만들기 https://www.youtube.com/watch?v=nrxzK_ky3uc 3) RESTful API란 무엇인가요? https://aws.amazon.com/ko/what-is/restful-api/ 4) REST API란? REST, RESTful이란? https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80 안드로이드 스튜디오에..
2022-1학기에 캡스톤을 수강하게 되었다. 캡스톤 수강 전, 제작 흐름을 파악하기 위해 이제까지 배우고, 경험했던 내용을 활용해 restapi 서버를 활용한 간단한 안드로이드 어플을 제작해보려고 한다. 안드로이드 제작 경험이 있어서 클라이언트는 안드로이드로 개발하면 될 것 같았고, 이제껏 내가 스프링 부트를 가지고 공부했으므로 스프링 부트가 서버 역할을 하면 아주 좋겠다 생각은 했지만 지식이 없으니 스프링 부트를 앱 서버로 써도 되는지부터 알아봐야했다. 이것저것 구글링 해 본 결과 안드로이드 스튜디오에 스프링 부트 서버를 쓰는건 흔한 일 같다. 마찬가지로 스프링 부트에 MySQL을 연결해서 쓰는 게시글도 아주 많다. 결론은 안드로이드 스튜디오 - 스프링 부트 - MySQL 로 백을 구현해보기로 했다. ..
* 인프런 '스프링 핵심 원리' 강좌 복습 게시글 입니다. BeanDefinition(빈 설정 메타정보) 스프링 컨테이너에 스프링 빈을 등록할 때 BeanDefinition(빈 설정 메타정보)를 사용해 스프링 빈을 생성한다. 덕분에 자바 코드,xml등 다양한 형식의 설정 형식을 지원한다. 스프링 빈 등록 과정 1. 자바 코드(xml)을 읽어서 BeanDefinition을 생성한다. 2. BeanDefinition으로 스프링 빈을 생성한다. 3. 스프링 컨테이너에 빈 등록 한다. BeanDefinition 생성 방법 1. BeanDefinition을 직접 적어서 생성 - 실무에서 잘 사용하지 않음 2. FactoryBean을 통해서 생성 - 자바 코드로 생성하는 방법이 이 방법을 사용한다.
* 인프런 '스프링 핵심 원리' 강좌 복습 게시글 입니다. 스프링 컨테이너 스프링 빈을 관리해주는 역할 BeanFactory와 ApplicationContext를 우리는 '스프링 컨테이너'라고 부른다. BeanFactory와 ApplicationContext 차이점 및 정리 1. AC가 BF의 기능을 상속받는 구조이다. 2. AC = BF + 부가기능(메세지소스, 환경변수, 애플리케이션 이벤트, 편리한 리소스 조회) 3. 실무에서는 거의 AC만 쓴다.
* 인프런 '스프링 핵심 원리' 강좌 복습 게시글 입니다. IOC (Inversion of control: 제어의 역전) AppConfig 사용 전: 제어 흐름이 구현 객체에서 드러남 AppConfig 사용 후: AppConfig가 제어 흐름을 담당함 ( 구현 객체는 로직 실행만 담당하게 됨) 같은 맥락으로, 프레임워크와 라이브러리의 차이도 제어의 주체가 개발자냐 프로그램이냐임. 프레임워크 사용시 제어의 역전이 일어남. DI (Dependency Ingection: 의존 관계 주입) 의존 관계의 종류 1. 정적인 의존 관게: 어플케이션을 실행하지 않아도 알 수 있는 의존 관계 2. 동적인 의존 관계(동적인 객체 인스턴스 의존 관계): 실제 동작 시 사용되는 객체의 의존 관계 의존 관계 주입은, 실행 시 ..
* 인프런 '스프링 핵심 원리' 강좌 복습 게시글 입니다. 스프링을 만든 이유 좋은 객체 지향 애플리케이션을 개발 하기 위해 좋은 객체 지향 프로그래밍이란? 유연하고 변경이 용이해야함 > 자바의 다형성! 다형성이란? 역할과 구현으로 분리해서 개발하는 것. 즉, 스프링은 다형성을 극대화하여 이용할 수 있게 도와준다. ( 다형성을 지키며 *SOLID의 OCP,DIP를 지키면서 프로그래밍 할 수 있게 해준다.) * 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 1. SRP(Single Responsibility Principle, 단일 책임 원칙): 한 클래스는 하나의 책임만 가져야 한다. 2. OCP(Open/Cloesd Principle, 개방-폐쇄 원칙): 확장에는 열려있으나 변경에는 닫혀 있어야 한..
공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 핵심 관심 사항: 각 기능의 핵심 로직 공통 관심 사항: 모든 메소드에 대부분 공통으로 필요한 로직 ( ex: 메소드 시간 측정 ) 핵심 관심 사항과 공통 관심 사항이 섞여있는 로직은 가독성이 안 좋을 뿐더러 유지보수도 어렵다. AOP는 이러한 문제를 해결하는 역할을 한다. AOP AOP: Aspect Oriented Programming 핵심 관심 사항과 공통 관심 사항을 분리해줌 AOP 적용 후 달라지는 의존 관계 AOP를 적용하면 *프록시를 생성하여 직접적으로 객체에 의존하지 않게 된다. 프록시: 가짜 객체
1. 의존관계 컨트롤러에 명령이 들어오면 서비스를 통해 회원가입하고 서비스는 리포지토리를 통해 데이터를 저장하고 조회한다. 이를 클래스 간에 의존관계가 있다고 표현하는데 이 의존관계를 주입하는 방식에는 두가지가 있다. ① 컴포넌트 스캔과 자동 의존관계 설정 @Controller, @Service, @Repository 각 어노테이션 안에는 @Component 어노테이션이 포함되어 있는데 이 어노테이션이 있으면 스프링 컨테이너에 하나의 싱글톤(유일한) 객체로 등록이 된다. 이것이 컴포넌트 스캔이다. @Autowired : 자동으로 의존성 주입 생성자 주입, 필드 주입, setter 주입이 있는데 주로 생성자 주입을 사용한다. ② 자바 코드로 직접 스프링 빈 등록하기 자바 클래스를 새로 생성해서 아래 어노테..
1. 정적 컨텐츠 서버에서 HTML파일 자체를 웹 브라우저로 넘겨줌. 동적 수행이 없다. 동작 방식 1. 스프링 컨테이너에 관련 컨트롤러가 있는지 찾아본다. 2. 없으면 html을 찾아본다. 3. 웹 브라우저로 보낸다. 2. MVC와 템플릿 엔진 Model, View, Controler로 나누어서 코드 작성. 템플릿 엔진으로 서버에서 동적인 처리가 가능하게 한다. 동작 방식 1. 스프링 컨테이너에 관련 컨트롤러가 있는지 찾아본다. 2. 컨트롤러에서 인자를 받고, 리턴한 html을 찾는다. 3. 템플릿 엔진을 통해 동적 수행을 한다. 4. 웹 브라우저로 변환된 html을 보낸다. 3. API html파일이 아니라 stiring, 객체(json) 등을 보내줄 때 쓰인다. 동작 방식 1. 스프링 컨테이너에서 ..