Java (20) 썸네일형 리스트형 @Autowired vs @Inject vs @Resource 가장 많이 사용하는 @Autowired는 뭘까? 그와 비슷한 @Inject, @Resource는 무엇일까? 오늘 재직중인 회사에서 재미있는 여러가지 키워드를 들었습니다. 궁금한 건 못참으니 학습하여 정리해보겠습니다. 먼저 위에 3가지의 공통점은 의존 관계를 맺어주는 것을 말합니다. 해당 애노테이션을 사용한 후 클래스를 선언하면 작성한 클래스와 작성된 클래스는 의존 관계가 맺어지게 됩니다. @Component public class Load { @Autowired private SuperCar superCar; // superCar class DI @Inject private GoodCar goodCar; // GoodCar class DI } 다음으로 3가지의 차이점으로 아래의 표를 참조해주세요. @Au.. 자바의 다양한 연산자 학습 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 간단한 용어 정리 정리하기에 앞서 관련용어를 정리해보겠습니다. 연산 ( operations ) 프로그램에서 데이터를 처리하여 결과를 얻어내는 것 연산자 ( operator ) 연산에 사용되는 부호, 기호 피연산자 ( operand ) 연산에 대상이되는 데이터 연산식 ( expressions ) 피연산자와 연산자로 연산을 하는 과정 public void expressions() { // primitive type 변수 선언과 초기화.. 실전 자바 소프트웨어 개발 정리 - 3 문서 관리 시스템 목표 문서 관리 기능 설계의 핵심은 상속 관계, 즉 어떻게 클래스를 상속하거나 인터페이스를 구현하는가에 달렸다. 문서관리 기능을 제대로 설계하려면 리스코프 치환 원칙을 알아야한다. 언제 상속을 사용해야 하는지와 관련해서는 '상속보다 조합' 원칙도 알아야한다. 유지보수가 쉽고 좋은 테스트를 만드는 방법을 활용해 기존에 배운 자동화된 코드 구현 지식을 확장한다. 설계 다양한 방법으로 설계가 가능하므로 다양한 설계와 모델링 중 한 가지를 선택한다. 테스트 주도 개발(TDD)은 프로그램을 시작하는 아주 좋은 방법 중 하나이며 이미 예제를 풀어보면서 사용한 방법이다. 임포터 다양한 종류의 문서를 임포트하는 것이 문서 관리 시스템의 핵심 기능이다. 파일의 확장자로 파일을 어떻게 임포트할 지 결정할.. 실전 자바 소프트웨어 개발 정리 - 2 입출금 내역 분석기 확장판 목표 코드베이스에 유연성을 추가하고 유지보수성을 개선하는 데 도움을 주는 개방/패쇄 원칙(open/closed principle (OCP)) 을 배운다. 언제 인터페이스를 사용해야 좋을지를 설명하는 일반적인 가이드라인과 높은 결합도를 피할 수 있는 기법도 배운다. 자바에서 언제 API에 예외를 포함하거나 포함하지 않을지를 결정하는 자바의 예외 처리 방법을 배운다. 메이븐, 그레이들 같은 검증된 빌드 도구를 이용해 자바 프로젝트를 시스템적으로 빌드하는 방법도 배운다. 개방/패쇄 원칙 특정 금액 이상의 모든 입출금 내역을 검색하는 메서드를 구현해보자. 간단한 findTransactions() 메서드를 포함하는 BankTransactionFinder 클래스를 따로 만들 수 있다. 하.. 실전 자바 소프트웨어 개발 정리 - 1 이 글에서는 프로젝트( 입출금 내역 분석기 )를 만들면서 SRP에 대해서 알아보겠습니다. KISS 원칙 keep it short and simple 응용프로그램 코드를 한 개의 클래스로 구현한다. 코드 유지보수성과 안티 패턴 코드 유지보수성을 높이기 위해 노력해야한다. 특정 기능을 담당하는 코드를 쉽게 찾을 수 있어야 한다. 코드가 어떤 일을 수행하는지 쉽게 이해할 수 있어야 한다. 새로운 기능을 쉽게 추가하거나 기존 기능을 쉽게 제거할 수 있어야 한다. 캡슐화(encapsulation)가 잘 되어 있어야 한다. 즉 코드 사용자에게는 세부 구현 내용이 감춰져 있으므로 사용자가 쉽게 코드를 이해하고, 기능을 바꿀 수 있어야한다. 새로운 요구 사항이 생길 때마다 복사, 붙여넣기로 해결한다면 하기와 같은 문제.. [JAVA] 문자열 입력과 출력 (Scanner) 문자열 입력과 출력 (Scanner) 처음 프로그래밍 언어를 공부할 때, C 언어를 많이 공부할 것이다. 그때 가장 먼저 배우는 것이 printf() 이고, 문자열을 입력받는 scanf() 이다. 알고리즘을 공부할때도 printf() 와 scanf() 를 많이 사용한다. 그럼 자바에서는 C 언어의 printf() 와 scanf()는 무엇일까? 문자열을 출력하는 명령은 System.out.println(); 을 사용하고, 문자열을 키보드로 입력받을 때는 System.in 을 사용한다. 하지만 입력받은 문자열을 읽고 처리하기 위해서 Scanner 클래스에 담아서 처리한다. Scanner 클래스는 표준 Java 클래스 라이브러리에 속하며, 다양한 타입의 입력 값들을 읽어들이기 위한 편리한 방법을 제공한다. S.. [JAVA] 기본 데이터 타입과 변환 기본 데이터 타입과 변환 1. 기본 데이터 타입 JAVA에는 8개의 기본 데이터 타입(primitive data types)이 있다. 정수 타입 : byte, short, int, long 부동 소수점 타입 : float, double 부울 데이터 타입 : boolean 문자 데이터 타입 : char (1) 정수와 부동 소수점 byte 는 8비트로, 0과 1을 표현하는 1 비트의 8자리이다. 1 byte 는 128가지 다른 데이터를 가질 수 있다. 등호를 포함하게되면 1 byte의 범위는 -128 ~ 127 이다. 프로그램을 설계할 때 메모리 공간이 낭비되지 않도록 적절한 크기의 변수를 선택하는데 주의해야 한다. 특정 변수의 값이 1~1000 의 범위를 벗어나지 않을 경우, short 면 충분하다. 반면.. 첨부파일 한글 깨짐 확인 fileupload 첨부파일 한글깨짐 현상 1. 파일 업로드시 파일 첨부가 안되는 경우 한글깨짐 현상으로, iter에서 FileData 및 첨부파일 정보를 가져오지 못함 fileupload.* 방식 while (iter.hasNext()) { item = (FileItem)iter.next(); if (!item.isFormField()) { // input type="file" 인경우 if ("FileData".equals(item.getFieldName())) { // rMate Uploader 컴포넌트의 uploadFieldName 속성 값 - 기본값은 'FileData' 입니다 => 해결방안 맨밑에 utf-8 추가 upload.setSizeMax(Long.parseLong(G_attach_maxsize)*1024*1.. [리뷰]Do it! 자바 완전 정복 [주요 내용] - 문법에 집중해 예제 코드는 간결하게, 설명은 개념까지 친절하게 - 비유와 그림, 프로그래밍 상식까지! 자바 문법, 그 이상을 만난다 - 이해는 했는데 프로그램을 못 짜겠다면? 이렇게 연습하자 [대상독자] - 자바 입문자 - 객체지향 언어를 배우고 싶은분 [서평] “내가 작성한 코드가 어떻게 동작하는지 하나하나 보여 준다!” 182개의 도해와 그림으로 더 쉽게, 더 깊게 이해한다! 내가 작성한 코드는 도대체 어떻게 실행될까? 글로만 이해하려고 하면 답답하기 마련이다. 이 책은 182개의 도해와 그림으로 자신이 작성한 자바 프로그램이 작동하는 모습을 하나하나 속 시원하게 보여 준다. 메모리 동작 원리와 같은 프로그래밍의 추상적인 개념을 쉽게 이해할 수 있을 것이다. 수년간 대학에서 자바 프.. JAVA 설치- CentOS, ubuntu, mac JAVA 설치- CentOS, ubuntu, mac http://java.sun.com CentOS yum list | grep jdksudo yum remove java-1.7.0-openjdk.x86_64 -ysudo yum install java-1.8.0-openjdk-devel.x86_64 -y Ubuntu openjdk sudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get install openjdk-8-jdk -y Ubuntu oracle-jdk sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java8.. 이전 1 2 다음