Java - 기본기30 웹 네트워크 기본 공부 1) 네트워크와 웹 브라우저의 요청 흐름 웹 개발자에게 있어서 아마 가장 중요한 것은 자신의 개발 언어 능력일 것이다. 다만 '웹' 개발자이기 때문에 백엔드던 프론트던 결국 네트워크를 지나칠 수는 없다. 오늘은 이런 부분들에 대해서 공부해보려고 한다. 1. IP : 인터넷 프로토콜 지정한 IP 주소 IP Address 에 데이터 전달 패킷(packet) 이라는 통신 단위로 데이터 전달 2. IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않는 경우도 발생 프로그램 구분 : 같은 IP 를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우 구분이 힘듦 ⇒ 인터넷으로 2가지 일을 동시에 - 게임&음악 - 하는 경우 정확히 어떤 서비스를 위한.. Java - 기본기 2022. 8. 17. 26. VO, DTO, Entity, DAO 와 JDBC 잊어버리기 전에 Java 로 백엔드를 다루면서 가장 중요하고, 기본적인 DAO, DTO, VO 를 정리해두려고 한다. 또 JDBC 도 정리하려고 한다. 1. VO : Value Object 일종의 Small Object 값을 사용하기 위해서만 존재하는 객체, ReadOnly - Value Object 는 값 그 자체를 표현하기 위해 사용하는 객체 => 값을 담는 항아리 - Read-Only 특징 => 데이터 읽기 중심임으로 데이터를 검증&검사하기 위한 메서드가 존재 - VO 의 가장 큰 특징은 equals() 와 hashcode() 를 오버라이딩해서 사용한다는 점!! 이는 이후 VO 객체마다 같은 객체인지 다른 객체인지를 비교하기 위해서라고 한다. - Entity 와는 다르다!! 다만, JPA 까지 가면.. Java - 기본기 2022. 4. 22. 25. Java Swing 과 JFrame, Graphics Java Swing 이란 GUI 프로그래밍에 필요한 각종 라이브러리와 클래스들을 묶어놓은 것으로 JAVA 로 GUI 프로그래밍을 하게 된다면 한번쯤 보게 된다. 다양한 라이브러리들을 임포트해서 사용하는데 그 중에서도 JFrame 을 상속받아서 사용하면 보다 편하게 GUI 프로그래밍이 가능하다. 0. JFrame 와 Frame 의 차이점은 분명 존재!! Frame - AWT ———> 업그레이드 ======⇒ JFrame - Swing JFrame 을 상속받아서 사용할때 기본으로만 실행하면, 말 그대로 기본 동작만 있기 때문에 최소화, 최대화, x 버튼(창 닫기 버튼) 사용 등이 가능하나, X 버튼의 경우 실제로 눌렀을 때 꺼지게하기위해서는 직접 설정해야함 참고로 Frame 이 아닌 JFrame 의 클래스를.. Java - 기본기 2022. 4. 5. 24. Thread - 스레드 다루기(feat. Lotte 번호찍기) # 여기서 나오는 JFrame 은 따로 한번 더 정리할 예정입니다! 1. Thread 와 Process 1) Process 프로세스 Thread 를 알기 위해서는 프로세스에 대해서 먼저 이야기하여야한다. 프로세스 - Process - 란 단순하게 이야기해서 실행중인 프로그램 이라고 할 수 있다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 자원 그리고 스레드로 구성된다. 2) Thread 스레드 Thread 스레드란 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에서는 한 개 이상의 스레드가 존재하며 작업을 수행한다. 또한 두 개 이상의 스레드를 가지는 프로세스를 멀티 스레드 .. Java - 기본기 2022. 3. 14. 23. Inner Class, 제네릭 자료형 1. InnerClass - innerclass 란 이너 클래스로 불리는 하나의 클래스로, 클래스나 인터페이스 내부에 선언되는 클래스이다. - 쉽게 이야기하면 클래스 안에 선언된 클래스로, 코드를 보다 읽기 쉽고, 재사용 가능하도록 하는 장점이 있다. - 바깥쪽에 선언된 outer class 와 안쪽에 선언된 innerClass 는 서로 밀접한 관련이 있다. 1) 기본 innerClass 기본 innerClass 말 그대로 가장 기본적인 innerClass 이다. 아주 단순하게 클래스 안에 클래스를 선언하는 방법으로 사용한다. InnerClass 의 인스턴스를 생성할때는 다음과 같이 사용한다. innerClass 는 outer 클래스의 안쪽에 존재하기 때문에 당연히 outerClass 에서 선언된 모든 .. Java - 기본기 2022. 3. 13. 22. 추상 클래스, 인터페이스, static, final 1. 추상 클래스 - abstract class 추상 클래스는 [접근제어자] abstract class [클래스명] 으로 선언한다. 추상 메서드는 [접근제어자] abstract [return여부] [클래스명] 으로 선언한다. 추상 클래스는 오직 상속만을 위해 탄생한 클래스로 다른 여러 클래스들의 공통된 필드 변수, 메서드들을 모아놓기 위해서 만들어졌다. 이렇게 만들어진 공통된 부분을 만들어놓은 추상 클래스를 하위 클래스들에서 상속 받은 후 변수와 메소드을 사용하게 된다. 일반 클래스가 설계도라면, 추상 클래스는 일종의 조감도라고 할 수 있다. 추상 클래스는 인스턴스, 즉 객체 생성이 불가능하다!!! 다중 상속도 불가능! 추상 클래스의 메서드는 크게 구현 메서드와 미구현 메서드로 나눌 수 있다. 구현 메서.. Java - 기본기 2022. 3. 5. 클래스, 메서드, 생성자, 상속 정리 : 나만의 StarCraft 이번 글에서는 지난 번까지 정리해두었던 메소드와 생성자, 상속에 대해서 정리해볼까 합니다. 또한 이러한 부분을 확실하게!! 즐겁게 정리해보기위해 StarCraft 를 이용해서 유닛을 구현하고, 정리해볼까 합니다. 물론 복잡하게는 하지 못하고...ㅠㅠ 지금까지 배운 것들을 최대한 활용해서 간단하게만! 구현해볼 생각입니다. 1. StarCraft.class - 먼저 상속을 위해 사용할 상위 클래스인 StarCraft 를 만들었습니다. - 이 클래스에서는 하위 유닛 - 객체- 가 모두 갖고 있을 만한 속성들에 대해서 정해두었습니다. - status 의 경우 StarCraft 객체를 매개변수로 받고 있습니다. 앞으로 아래 생성되는 Tank, Hydralisk 모두 StarCraft 클래스를 상속받고 있기 때문에.. Java - 기본기 2022. 3. 1. 21. 접근제어자와 상속, 오버라이드 1. 접근 제어자 - 접근 제어자는 Java 에서 변수나 메소드의 사용 권한을 설정하기 위해 사용하는 방법이다. - 접근 제어자는 변수나 메서드 앞에 올 수 있으며 아래 표에 있는 4가지를 사용할 수 있다. 단, 클래스의 경우 public 과 default 만 올 수 있다. 단, 지역 변수의 경우 어떤 것도 올 수 없다. 이는 메소드나 반복문 등 특정 모듈안에서만 사용되고 사라지는 지역 변수의 특성상 굳이 올 필요가 없기 때문이라고 할 수 있다. - 위에서 아래로 pivate -> defalult -> protected -> public 순으로 많은 접근을 허용한다. - 이러한 접근 제어자를 통해서 데이터를 감추고 보고하는 것을 객체지향개념에서 캡슐화(encapsulation)라고 한다. 접근제어자 종류.. Java - 기본기 2022. 3. 1. 18-2 메소드 : 메소드 반환 타입, 오버로딩, 매개변수, 호출방식 메서드인지 메소드 인지 매번 헷갈려요ㅠ 1. 메소드 기본 자주 사용하는 코드를 뽑아서 묶어놓은 것 메서드 선언 방법 void 메서드이름(){ 코드; } 예를 들어 별찍기 코드를 자주 사용한다면 이 코드를 묶어서 하나의 메서드로 만들고 이후 메인 메서드에서 빠르게 실행 할 수 있다. 메서드에서 다른 메서드를 불러 올 수도 있다. public static void main(String[] args) { int count = 0; PrintStar(); PrintStar(); PrintStar(); for(int i=0; i 이때 ... 은 정말 사용하는 ... 이다. 이렇게 가변인자를 받게 될 때는 메서드의 인자를 해당 자료형의 배열로 취급한다. 배열로 취급하기 때문에 .length 사용이 가능하다. voi.. Java - 기본기 2022. 2. 24. 20. 컬렉션 프레임워크 : list, set, map 간단 하게 알아보기 1. 프레임워크 vs 라이브러리 라이브러리 : 다른 개발자가 미리 만들어놓은 기능을 모아 놓은 것 => 오디오 라이브러리, 통계 라이브러리(대표적으로 파이썬의 pandas, numpy) 프레임워크 : 다른 개발자가 미리 만들어놓은 기능을 모아 놓은 것 + 개발하는 방식을 일정한 틀로 만들어 놓은 것 개발의 자유성은 떨어졌지만, 프로그램을 작성한 방식이 비슷하기 때문에 유지보수가 좋아짐. 자바에서는 대표적으로 spring 프레임워크가 있으며, spring 안에서 일정한 틀로 개발 가능 => MVC 패턴, bean 컨테이너에 객체 등록, IoC 와 DI 등 2. 컬렉션 프레임워크(Collection framework) - 여러 객체(데이터)를 모아놓은 것을 의미 => 컬렉션(다수의 객체)을 다루기 위한 표준.. Java - 기본기 2022. 2. 7. 19. 오버로딩, 생성자, 기본 생성자, 생성자 this(), 참조변수 this 1. 오버로딩(overloading) 한 클래스 안에 동일한 이름의 메서드를 여러 개 정의하는 것 기본은 하나의 메서드 이름 - 한 클래스 ⇒ 1 : 1 오버로딩하면 메서드 : 클래스 = N : 1 오버로딩이 성립하기 위한 조건 3가지 메서드 이름이 같아야 함 매개 변수의 개수, 순서, 타입이 달라야 함 반환 타입은 영향 X - 메서드 중복 정의 : 똑같은 메서드를 2번 정의하는 것 => 오버로딩 X int add(int a, int b) { return a+b } int add(int x, int y) { return x+y } - 오버 로딩 int add(long a, int b) { return a+b } => add(3, 3L) int add(int x, long y) { return x+y } .. Java - 기본기 2021. 12. 9. 18. 메소드 : 선언부와 구현부, 메서드 호출, return문, 반환값 1. 메서드란? 문장들을 묶어놓은 것. 정확히는 같은 작업을 하는 코드를 묶어 코드 중복을 줄이기 위해 사용 : 중복코드 제거, 관리 용이, 재사용 가능 메서드는 값(입력)을 받아서 처리하고, 결과를 반환(출력) 참고로 저는 지금까지 메서드를 사용했을 때는 값(입력) 받는 부분을 제외하고 결과를 반환하는 방법만 사용했습니다. 즉 반환 타입을 void 로 넣어서 사용했습니다. int add (int x, int y){ 반환타입 메서드이름 매개변수선언(입력) int result = x + y; return result; } 메서드가 어떻게 동작하는지 까지는 사실 알 필요가 없음. 다만 메서드의 '기능'은 알고 있으면 편함. 예로 println 이 어떻게 동작하는지는 알 필요가 없지만, 어떤 기능(출력)을 하.. Java - 기본기 2021. 10. 26. 이전 1 2 3 다음 728x90 반응형