개발자 유자❤

IT/JAVA

[JAVA] Static import

💡 Static import 사용법 💡 Static import를 사용하지 않은 코드(Math) int i = Math.abs(-20); double d = Math.acos(Math.PI) * Math.E; 💡 기본적인 static import 사용 (권장되지 않음) import static java.lang.Math.*; int i = abs(-20); 💡 권장되는 static import 사용 import static java.lang.Math.abs; import static java.lang.Math.acos; int i = abs(-20); double d = acos(PI) * E; 👌 staticc import는 자주 사용하는 클래스의 "이름만 보아도 어디에 속하는지 알 수 있는 정적 멤버..

IT/JAVA

[JAVA] AssertJ 정리

💡 JUnit 이란? : 자바를 위한 단위 테스트 라이브러리(오픈소스)이다. : 자바 애플리케이션에 대한 단위 테스트를 쉽게 해주는 테스트용 프레임워크 👉JUnit의 assert 메소드들 assetEquals(A,B) : 객체 A와 B가 같은 값을 가지는지 확인한다. assertEquals(A,B,C) : 객체 A와 B가 같은 값을 가지는지 확인한다. C는 오차범위. assertArrayEquals(A,B) : 배열 A와 B가 일치하는지 확인한다. assertSame(A,B) : 객체 A와 B가 같은 객체인지 확인한다. assertTrue(A) : 조건 A가 참인지 확인한다. assertNull(A) : 객체 A가 Null인지 확인한다. assertNotNull(A) : 객체 A가 Null인지 아닌지 확..

IT/JAVA

[JAVA]ConcurrentHashMap이란?

💡 HaspMap이란? : 데이터를 저장할 때 키(key)와 값(value)가 짝을 이루어 저장된다. : 데이터를 저장할 떄 키(key)값으로 해시함수를 실행한 결과를 통해 저장위치를 결정한다. 👉 해시함수를 통해 데이터의 저장위치를 알 수 있기 때문에 데이터의 추가, 삭제, 검색이 빠르다는 장점이 있다. 👉 Multi-Thread 환경에서 사용 불가 💡 ConcurrentHaspMap이란? : Map 일부에만 lock을 걸어 운용 👉 추가 및 삭제와 같은 수정 작업만 동기화된다. 👉 null, null 값을 허용하지 X 👉 Multi-Thread 환경에서 사용 가능

IT/JAVA

객체지향 5대 원칙(SOLID) - DIP (의존성 역전 원칙)

💡의존성 역전 원칙 (DIP) Dependency Inversion Principle 객체에서 어떤 Class를 참조해서 사용할 때 그 Class를 직접 참조하는 것이 아니라 그 대상의 상위 요소(추상 클래스 or 인터페이스)로 참조하라는 원칙 프로그래머는 "추상화에 의존해야지, 구체화에 의존하면 안된다." 의존성 주입은 이 원칙을 따르는 방법 중 하나다. 쉽게 말해 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻 역할(Role)에 의존하게 해야 한다는 것과 같다. 객체 세상도 클라이언트가 인터페이스에 의존해야 유연하게 구현체를 변경할 수 있다! 구현체에 의존하게 되면 변경이 아주 어려워진다. List myList = new ArrayList(); Set mySet = new HashSet();..

IT/JAVA

객체지향 5대 원칙(SOLID) - OCP (개방 폐쇄 원칙)

💡개방 폐쇄 원칙 (OCP) Open Closed Principle 객체의 확장은 개방적으로, 객체의 수정은 폐쇄적으로 대해야 한다는 원칙 기능이 변하거나 확장되는 것은 가능하지만 그 과정에서 기존의 코드가 수정되지 않아야 한다. 기능 추가 요청이 오면 확장을 통해 구현하면서, 확장에 따른 클래스 수정은 최소화하도록 프로그램을 작성해야 하는 설계 기법을 의미함. => 추상화를 의미! 💡 추상화 : 클래스를 정의할 때 불필요한 부분들을 생략하고 객체의 속성 중 중요한 것에만 중점을 두어 개략화하는 것을 의미함. public abstract class Car { public abstract void drive(); } public class Truck extends Car { public void drive..

IT/JAVA

[자바의 정석] CH 16. 네트워킹

💡 네트워크 기본 개념 네트워킹 : 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것을 말함. 클라이언트 : 서비스를 사용하는 컴퓨터 서버 : 서비스를 제공하는 컴퓨터 파일 서버, 메일 서버, 어플리케이션 서버 등이 있다. 서비스 : 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것 서버기반 모델 P2P 모델 - 안정적인 서비스의 제공이 가능하다. - 공유 데이터의 관리와 보안이 용이하다. - 서버구축비용과 관리비용이 든다. - 서버구축 및 운용비용을 절감할 수 있다. - 자원의 활용을 극대화 할 수 있다. - 자원의 관리가 어렵다. - 보안이 취약하다. IP 주소 : 컴퓨터를 구별하는데 사용되는 고유한 값 -> 4byte 정수로 구성되어 있으며, 4개의 정수가 마침표..

IT/JAVA

[JAVA] CH 15. 입출력(I/O)

스트림(Stream) : 데이터를 운반하는데 사용되는 연결통로 : 단방향 통신만 가능하기 때문에 입/출력 각각 스트림 필요함. : 연속적인 데이터 통신 가능 바이트 기반 스트림 - InputStream, OutputStream 입력스트림 출력스트림 입출력 대상의 종류 FileInputStream FileOutputStream 파일 ByteArrayInputStream ByteArrayOutputStream 메모리(byte 배열) PipedInputStream PipedOutputStream 프로세스(프로세스 간 통신) AudioInputStream AudioOuptutStream 오디오장치 - InputStream : read -> 매개변수 byte read() read(byte[] b) read(byt..

IT/JAVA

[JAVA] 자바 API

💡 API 프로그램들과 데이터베이스, 그리고 기능들의 상호 통신 방법을 규정하고 도와주는 매개체 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미 앱이 프로그래밍 언어로 상호작용 할 때의 규칙 - Auth : 로그인 - HTTPS : 보안 - CORS : HTML 페이지 내 요청에 따른 여부, Proxy server 필요함. 💡 Ajax : Asynchronous JavaScript and XML의 약자 : 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법의 하나 : 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있다. 👉 Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다. 1. XMLHttpRequest ..

IT/JAVA

[JAVA] CH 14. 스트림(Stream) - 연산, 변환

스트림의 연산 중간 연산 : 연산 결과가 스트림인 연산. 스트림에 연속해서 중간 연산할 수 있음. - skip(long n) : n만큼의 요소를 건너뜀. - limit(long maxSize) : maxSize로 요소의 개수 제한함. - filter(Predicate

IT/JAVA

[자바의 정석] CH 14. 스트림(stream) - 정의, 특징, 만들기

스트림 : 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓음. => 같은 방식으로 다룰 수 있고, 코드의 재사용성이 높아진다는 것을 의미 String [] strArr = {"aaa","bbb","ccc"}; Stream strStream1 = Arrays.stream(strArr); List strList = Arrays.asList(strArr); Stram strStream2 = Arrays.stream(strArr); 스트림의 특징 1. 스트림은 데이터 소스를 변경하지 않는다. 2. 스트림은 일회용이다. => forEach()를 시행하고 난 stream에서는 또 forEach()문을 시행할 수 없다. 이럴 경우 새롭게 stream 생성한 뒤 진행해야 한다. 3. 스..

유자나라
'IT/JAVA' 카테고리의 글 목록