일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- HTTP
- 의존성 주입
- Vue.js
- 캐시
- BEAN
- thymeleaf
- Singleton
- 라이프 사이클
- js
- 로그인
- 프로토타입
- vue-cli
- DB
- Kotlin
- 싱글톤
- Setter
- dependency injection
- HTTP 메서드
- vuex
- VUE
- Java
- Excel
- javascript
- cache
- Repository
- Security
- Stateless
- JPA
- Spring
- di
- Today
- Total
목록전체 글 (130)
jhhan의 블로그
이번 포스트는 스프링 - 엑셀 다운로드를 좀 더 그럴 듯하게 변경해서 진행합니다. 저번 엑셀 다운로드는 굉장히 간단하게만 알아봤습니다. 이번에는 backend: spring frontend: vue.js 로 진행해보려 합니다. 빠른 진행을 위해 설정은 아래 링크를 참조하면 됩니다. jhhan009.tistory.com/49?category=780121 먼저 백엔드부터 진행합니다. 모델과 컨트롤러가 중요합니다. 먼저 모델인 IntAndDouble 클래스를 만들어봅니다.(클래스 이름은 맘대로 하시면 됩니다.) public class IntAndDouble { private Integer mode; private Double affinity; private Double lb; private Double ub;..
이번 포스트는 spring으로 엑셀파일을 다운받는 방법입니다. 다른 포스트들은 너무 복잡하게 나와있는 것 같아서 최대한 간단하게 해봤습니다. offbyone.tistory.com/250 참고한 블로그입니다. 먼저 간단한 스프링 프로젝트를 만듭니다. 프로젝트 설정 시 spring web과 thymeleaf를 추가해주시기 바랍니다. 저는 gradle로 진행했습니다. maven이어도 큰 문제는 없습니다. 프로젝트 구조입니다. -> 매우 간단합니다. ㅎㅎ build.gradle 파일을 먼저 설정해 봅니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springfra..
'자바와 스프링 그 사이' 시리즈 포스트에 이어서 진행합니다. 스프링 컨테이너와 빈에 대해서 간략하게 알아보려고 합니다. 스프링 컨테이너1 지난번 포스트의 코드 중 일부입니다. ApplicationContext를 스프링 컨테이너라고 한다. ApplicationContext는 인터페이스 AnnotationConfigApplicationContext는 구현체이다. 실제 ApplicationContext와 AnnotationConfigApplicationContext의 관계를 본다면 AnnotationConfigApplicationContext implements ApplicationContext 인것을 알 수 있다. 스프링 컨테이너2 스프링 컨테이너는 xml 기반일 수도 있고, 어노테이션 기반일 수도 있다...
3편에 이어서 쓰려고 합니다. 이번 포스트는 자바만을 활용하는 마지막 편입니다. 여기서 이제 스프링을 활용하기 위한 기초 작업을 한 후 다음부터는 스프링 게시판으로 옮겨서 적겠습니다. 먼저 AppConfig 클래스부터 살펴보겠습니다. AppConfig에 스프링 어노테이션을 붙이겠습니다. @Configuration public class AppConfig { @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPo..
2편에 이어서 진행합니다. 저번에 DIP를 지켜보려고 노력하다가 에러가 뜨는 것을 마지막으로 마무리 했습니다. 이번에는 그것을 한 번 고쳐보도록 하죠. 이전의 코드는 인터페이스 A 존재 A를 구현한 구현체 A'이 있다. 인터페이스 B 존재 B를 구현한 구현체 B'이 있다. 원래라면 A'과 B'은 별개이다. 그래서 서로 관여할 일이 없다. 하지만 현재 A'이 B'을 직접 선택하는 것 과 같습니다. 이전 포스트에 적은 제 글을 한 번 보겠습니다. public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository = new MemoryMemberRepository(); private final..
1편에 이어서 진행하겠습니다... 전에는 회원을 만들 수 있는 파트를 진행했습니다. 이제는 회원과 관련된 할인을 적용해보겠습니다. 일단 할인의 경우 VIP에 한해서 1000원 할인만 해보겠습니다. 프로젝트 구조입니다. 할인에 대한 도메인을 만들기 때문에 discout 라는 패키지를 추가했습니다. 그리고 인터페이스를 하나 만듭니다. public interface DiscountPolicy { /** * @return 할인 대상 금액 */ int discount(Member member, int price); } 현재는 1000원 할인만 진행하지만, 나중에 다른 방식으로 할인을 진행할 수 도 있기 때문에 인터페이스를 이렇게 만듭니다. (할인 금액만 반환하는 아주 단순한 인터페이스... ㅎ) 다음으로 인터페이..
이번 포스트는 이전에 다뤘던 SOLID원칙을 이용해서 진행할 것입니다. 특히 DIP와 OCP를 지켜볼려고 노력하면서 진행합니다. 자바를 사용해서 코드를 진행합니다. 하지만 프로젝트 설정은 스프링으로 시작합니다. 처음에는 자바로 코딩을 하다가 나중에 스프링으로 넘어가기 위해서입니다. 지금은 자바 쪽에 넣어놨지만, 나중에는 스프링으로 옮겨서 글을 이어서 쓸 것 입니다. 그래서 처음 설정은 스프링으로 시작합니다.. 스프링을 설정을 하기 위해 다음의 사이트로 들어갑니다. start.spring.io 여기로 들어가면 스프링 설정을 할 수 있습니다. 혹은 인텔리제이 얼티메이트 버전을 사용한다면 여기에 들어가지 않고 스프링 프로젝트를 바로 만드실 수 있습니다. 사이트에 들어가시면 왼쪽 위쪽에 이런 것들이 보입니다. ..
이번 포스트에서는 객체지향 설계의 원칙 5가지에 대해 알아보겠습니다. (이 원칙은 면접에서도 물어볼 수 있다고 하니 알아두면 유용할 것 같습니다.) 클린 코드로 유명한 '로버트 마틴' 이라는 사람이 좋은 객체 지향 설계의 5가지 원칙 -> 기존에 있던 내용들을 알아보기 쉽게 정리한 것이라고 합니다. 줄여서 SOLID 라고 합니다. SRP: 단일 책임 원칙(Single Responsibility Principle) OCP: 개방-폐쇄 원칙(Open/Closed Principle) LSP: 리스코프 치환 원칙(Liskov Substitution Principle) ISP: 인터페이스 분리 원칙(Interface Segregation Principle) DIP: 의존관계 역전 원칙(Dependency Inve..