전체 글(73)
-
인터넷 네트워크 정리- ip, tcp, udp, port, dns
ip란? internet protocol의 약자이다. 그렇다면 protocol은 무엇인가? 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 통신 규약 및 약속이다. 즉 ip는 인터넷 상의 통신 규약을 의미한다. 클라이언트에서 서버로 전달될 때는 인터넷 상의 수많은 노드들을 거쳐서 전달된다. 하지만 위에 사진으로만 봤을 때는 어디서 어디로 보내는지 전혀 알 수가 없다. 데이터를 보내기 위해서는 출발지의 주소와 목적지의 주소가 필요하다. 이러한 문제점을 해결하기 위해 ip를 사용한다. ip를 사용하면 출발지 즉 클라이언트의 ip 주소와 목적지 즉 서버의 ip 주소를 부여하므로 어디로 데이터를 보내야 하는지 알 수가 있다. ip의 역할은 1...
2023.06.11 -
자바 스트림 정리(자바의 정석)
스트림에 대해 정리를 해보겠습니다. 1. 스트림, 스트림의 특징 자바에서는 컬렉션 프레임워크를 활용해서 데이터 소스를 표준화하는 방법을 지원합니다. 하지만 List, Set과 Map의 표준화가 다른거처럼 완전히 표준화가 된 방법은 아니였습니다. Stream을 통해 다양한 데이터 소스를 표준화 할 수 있게 되었습니다. Stream을 사용하는 방법은 컬렉션, 배열 등에 담긴 데이터소스를 스트림으로 만듭니다. 그리고 난 후 중간연산을 진행한 후 최종연산을 통해 결과를 출력합니다. Stream은 데이터의 연속적인 흐름을 말합니다. 스트림을 사용하는 과정은 1. 스트림을 만든다. 2. 중간연산 (0 ~ n번) 가능 3. 최종연산(0 ~ 1번) 가능 최종연산이 진행된 후에는 동일한 스트림을 사용할 수 없다. 따라서..
2023.06.04 -
자바 람다 정리(자바의 정석)
람다란? 람다식은 함수형 언어에서 온 개념으로 메소드를 간단한 식으로 표현할 때 사용합니다. 우리가 알고 있는 함수는 자바에서 메소드라는 이름으로 불리는데 왜냐하면 자바에서는 클래스 안에 선언을 해야 사용을 할 수 있기 때문이다. 1번 같은 경우에 타입이 있어야 되는 경우에는 ()를 사용해야 한다. 3번 같은 경우는 대부분 return문은 생략하기 때문에 있다는 거만 알고 넘어가자. 자바에서는 메소드만 사용될 수 없기 때문에 람다식은 익명 객체이다. public class Ex14_0a { public static void main(String[] args) { Object obj = new Object() { int max(int a, int b) { return a > b ? a : b; } }; i..
2023.05.29 -
인텔리제이에서 jdbc 사용시 아이디, 비밀번호 안전하게 넘기는 방법
jdbc에서 자바와 db를 연결할 때 dbhost, dbpassword, dbuser를 넘겨줘야 한다. 협업을 할 때 소스코드를 github에 올려야 되는데 password가 노출이 된다면 다른 사람들이 db에 접근할 수 있게 되므로 보안에 치명적인 약점이 생길 수 있다. Map env = getenv(); String dbHost = env.get("DB_HOST"); String dbUser = env.get("DB_USER"); String dbPassword = env.get("DB_PASSWORD"); Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(dbHost, dbUser, dbPa..
2023.05.23 -
어노테이션 정리(자바의 정석)
어노테이션 중 @Test는 자바에서 Junit으로 단위테스트를 할 때 사용합니다. @Override는 오버라이딩이 잘 되었는지 체크해주는 어노테이션이다. 자바 문법을 사용하다보면 문법에 맞게 써도 가로로 줄이 그어지는 경우가 있는데 @Deprecated를 사용했기 때문이다. 함수형 인터페이스는 단 하나의 추상메소드만 가질수 있는 인터페이스를 의미한다. class Parent { void parentMethod() { } } @FunctionalInterface //함수형 인터페이스는 하나의 추상 메소드만 가능 interface Testable { void test(); //추상 메소드 //void check(); // 추상 메소드 } class Child extends Parent { @Override ..
2023.05.22 -
인텔리제이 db와 연결하기
인텔리제이에서 db를 사용할 수 있는 기능은 ultimate 버전만 사용가능한 걸로 알고 있다. 인텔리제이와 db를 연동하여 사용하는 방법에 대해 알아보자. 인텔리제이 오른쪽 화면에 database에서 자신이 사용할 db를 선택한다. host에 localhost 혹은 aws에서 퍼블릭 dns 주소를 복붙한후 비밀번호를 입력한다. test connection을 누른 후 succeeded가 나오면 성공이다.
2023.05.22