일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- dm_exec_requests
- 교육법
- 배치
- 프론트컨트롤러
- 앵커멤버
- java
- 스프링
- XWPF
- 함수
- 디스패처서블릿
- 요청매핑
- 요약
- 자바
- MSSQL
- 튜닝
- HWPF
- spring
- 재귀멤버
- transferTo
- 아이
- git
- SQL
- 홈스쿨링
- 진경혜
- XACT_STATE
- ERROR_MESSAGE
- SQLSTATE=42705
- renameTo
- getChannel()
- TRANCOUNT
- Today
- Total
목록전체 글 (95)
필기노트
바이트 입출력 스트림의 최상위 클래스는 다음과 같다. InuptStream, outputStream 이와 유사하게 문자 입출력 스트림의 최상위 클래스는 다음과 같다. Reader, Writer 그리고 문자 단위 파일 입출력 스트림은 다음과 같다. FileReader, FileWriter 바이트 스트림의 FileInputStream, FileOutputStream과 각각 대응한다. 문자 스트림에도 버퍼 필터 스크림을 추가할 수 있다. BufferedReader, BufferedWriter 바이트 스트림의 입출력 버퍼 필터 스트림 BufferedFileInputStream, BufferedOutputStream과 각각 대응한다. 문자열의 입출력은 버퍼링의 유무에 따른 성능의 차이가 큰 것을 인식하고, 문자열..
보호되어 있는 글입니다.
File 클래스는 데이터의 입출력 이외에, 파일 또는 디렉터리와 관련된 일을 처리를 위해 디자인 된 클래스이다. import java.io.File; class FileMove { public static void main(String[] args) { File myFile = new File("C:"+File.separator+"MyJava"+File.separator+"my.bin");// 7행 if(myFile.exists()==false)// 8행 { System.out.println("원본 파일이 준비되어 있지 않습니다."); return; } File reDir = new File("C:"+File.separator+"YourJava");// 14행 reDir.mkdir();// 15행 Fil..
Java 소켓 통신(Socket)을 사용하는 이유 먼저 자바에서 소켓 통신은 C 또는 C++ 언어로 구현된 프로젝트와의 통신에 많이 사용됩니다. 이유는 Java와 C의 데이터 개념이 다르기 때문인데요. C에서는 구조체를 사용하는데 반해서 Java에는 구조체가 없습니다. 이처럼 Java의 Object 구조를 C에서 이해하지 못하고 C의 구조체를 자바에서 이해하지 못하기 때문에 서로 통신을 위해서는 byte 단위로 정보를 주고받아야 합니다. (Socket을 사용한 전문 통신) Http 통신과 Socket 통신의 차이점 - 단방향 통신인 Http 통신 Http 통신은 Client의 요청(Request)이 있을 때만 서버가 응답(Response)하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식입니다. Cl..
예를 들어서 할인 서비스를 제공하는데, 클라이언트가 할인의 종류(rate, fix)를 선택할 수 있다고 가정해보자. 스프링을 사용하면 소위 말하는 전략 패턴을 매우 간단하게 구현할 수 있다. 주입 분석 public class AllBeanTest { @Test void findAllBean() { ApplicationContext ac = new AnnotationConfigApplicationContext(FixDiscountPolicy.class, RateDiscountPolicy.class, DiscountService.class); } static class DiscountService { private final Map policyMap; @Autowired public DiscountServi..
기본 코드 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } } 생성자가 딱 1개만 있으면 @Autowired 를 생략할 수 있다. @Compo..
목차 1. 자바 코드로 직접 스프링 빈 등록하기 2. 컴포넌트 스캔과 의존관계 자동 주입 3. @Component 를 포함하는 다른 애노테이션 4. 조회 빈이 2개 이상 -> 오류 5. 자동, 수동의 올바른 실무 운영 기준 1. 자바 코드로 직접 스프링 빈 등록하기 1) @Configuration AppConfig에 설정을 구성한다는 뜻의 @Configuration 을 붙여준다. 각 메서드에 @Bean 을 붙여준다. 이렇게 하면 스프링 컨테이너에 스프링 빈으로 등록한다. 스프링 컨테이너는 @Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용한다. 여기서 @Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체..
객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지(stateful)하게 설계하면 안된다. 무상태(stateless)로 설계해야 한다! 특정 클라이언트에 의존적인 필드가 있으면 안된다. 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다! 가급적 읽기만 가능해야 한다. 필드 대신에 자바에서 공유되지 않는, 지역변수, 파라미터, ThreadLocal 등을 사용해야 한다. 스프링 빈의 필드에 공유 값을 설정하면 정말 큰 장애가 발생할 수 있다!!! ThreadA가 사용자A 코드를 호출하고 ThreadB가 사용자B 코드를 호출한다 가정하자. public class StatefulService { private..
파일 전송을 할 때 FileChannel이 가장 효율적이다. import java.nio.channels.FileChannel; public class FileMove { public static void main(String[] args) throws IOException { File myFile = new File("C:"+File.separator+"MyJava"+File.separator+"my.bin"); File reFile = new File("C:"+File.separator+"YourJava"+File.separator+"my.bin"); if(myFile.exists()==false) { System.out.println("원본 파일이 준비되어 있지 않습니다."); return; } F..
보호되어 있는 글입니다.