일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vue-cli
- thymeleaf
- js
- 캐시
- 프로토타입
- Stateless
- Kotlin
- vuex
- JPA
- Java
- HTTP
- Excel
- Spring
- 로그인
- dependency injection
- DB
- 싱글톤
- 의존성 주입
- Repository
- cache
- Security
- VUE
- Vue.js
- Singleton
- 라이프 사이클
- javascript
- Setter
- BEAN
- HTTP 메서드
- di
- Today
- Total
목록JAVA (14)
jhhan의 블로그
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 여기로 들어가면 스프링 설정을 할 수 있습니다. 혹은 인텔리제이 얼티메이트 버전을 사용한다면 여기에 들어가지 않고 스프링 프로젝트를 바로 만드실 수 있습니다. 사이트에 들어가시면 왼쪽 위쪽에 이런 것들이 보입니다. ..
이번에는 BufferedReader와 BufferedWriter에 대해서 알아보겠습니다. 이전 글에서 한번 다룬 적이 있긴 하지만, 그 때 너무 대충 적었습니다. 사실 이해도 조금 못하기도 했고, 약간 블로그를 무조건 적어야 한다 느낌으로 적느라 내용이 부실합니다. 이번에 좀 제대로 알고 제대로 적어보겠습니다. 두 클래스 모두 버퍼를 사용합니다. BufferedReader는 자바에서 자주 사용하는 Scanner와 같다고 생각하면 됩니다. 대신 입력받는 값이 많을 때는 BufferedReader가 더 효율적이라는 것을 기억하시면 됩니다. BufferedWriter는 자바에서 자주 사용하는 System.out.println과 비슷합니다. 역시 출력값이 많을 때는 BufferedWriter가 더 효율적입니다...
16장을 마지막으로 '자바의 정석:기초편'이 끝난다. 16장. 네트워킹 -네트워킹 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것 -서버와 클라이언트 서버 : 서비스를 제공하는 컴퓨터 하드웨어 사양에 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터 서비스를 제공하기 위한 서버 프로그램 필요 ex) 파일 서버, 메일 서버, 어플리케이션 서버 등 클라이언트 : 서비스를 사용하는 컴퓨터 서버 프로그램과 연결할 수 있는 클라이언트 프로그램 필요 ex) 웹브라우저, FTP클라이언트 프로그램 등 서버기반 모델 P2P 모델 1. 안정적인 서비스 제공 가능 2. 공유 데이터의 관리와 보안 용이 3. 서버구축비용과 관리비용이 많이 든다. 1. 서버구축 및 운용비용 절감 가능 2. 자원의 활용 극대..
15장. 입출력 -입출력과 스트림 I/O : Input & Output의 약자 - 간단하게 입출력이라 한다. 입출력 : 컴퓨터 내부 또는 외부 장치와 프로그램간의 데이터를 주고받는 것 스트림 : 데이터를 운반하는데 사용되는 연결통로 cf) 여기서 나오는 스트림은 14장의 스트림과 다른 개념이다. 글자만 같다. -바이트기반 스트림 : InputStream, OutputStream 스트림은 바이트단위로 데이터를 전송 여러 종류의 입출력스트림 존재 모두 InputStream, OutputStream의 자손들 java.io패키지를 통해 많은 입출력관련 클래스들을 제공 -보조스트림 스트림의 기능 향상 or 새로운 기능 추가 보조스트림만으로 입출력을 처리할 수는 없다. 스트림을 먼저 생성 후 이를 이용해서 보조스트..
14장 스트림부터 이어서 진행한다. 스트림은 예제가 별로 없어서 이해하기 힘들 수도 있다. -스트림 데이터 소스를 추상화, 데이터를 다루는데 자주 사용되는 메서드 정의 데이터 소스가 무엇이던 간에 같은 방식으로 이용가능하다. 코드의 재사용성이 높아진다. -스트림의 특징 데이터 소스를 변경하지 않음 일회용 : 한번 사용하면 다시 사용 불가능 작업을 내부 반복으로 처리 ex) forEach() 지연된 연산 : 중간 연산이 수행되지 않음 Stream와 IntStream : IntStream이 더 효율적이다. 병렬스트림 : 병렬 처리가 쉽다. -스트림 만들기 1. Collection에 stream()이 정의되어 있다. List, Set은 모두 스트림을 생성할 수 있다. Stream Collection.strea..