본문 바로가기

Java

(25)
[Spring] 좋은 객체 지향 설계의 5가지 원칙 (SOLID) - 좋은 객체 지향 설계의 5가지 원칙 (SOLID) SRP(Single Responsibility Principle): 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것. OCP(Open Closed Priciple): 개방 폐쇄 원칙 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. ex. 자동차 인터페이스가 있을 때,  엑셀 기능을 구현해야 한다면 속도 10 상승 규약을 맞추기..
[Spring] 핵심! 객체 지향 프로그래밍 - Spring의 핵심  : 객체 지향 프로그래밍 - Spring의 핵심 컨셉 : 스프링은 자바 언어 기반 프레임 워크. 좋은 객체지향 애플리케이션을 개발할 수 있도록 도와주는 프레임워크. - 좋은 객체지향 프로그래밍이란? 역할(인터페이스)과 구현을 분리 객체 지향 특징 : 추상화, 캡슐화, 상속, 다형성 다형성 인터페이스를 구현한 객체 인스턴스를 실행시점에 유연하게 변경 가능. 클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다. 한계 역할 자체가 변하면, 클라이언트, 서버 모두에 큰 변경이 발생. ex.자동차를 비행기로 변경해야 한다면?
[Java] vscode 에서 java main 자동완성 하기 VS Code에서 Class 및 main 작성하는 법 1. public class $Classname {} : 편집기에 class를 입력하면 토글 메뉴가 나타남 토글 메뉴 중 사각형 아이콘을 클릭하면 Template 2. public static void main(String[] args) {} :편집기에 main을 입력한 다음 토글 메뉴에서 main을 선택.
[JAVA] 참조자료형 자바의 데이터 타입 1. 기본자료형 (Primitive Type) 정수, 실수, 논리 자료형의 리터럴 값을 저장하는 타입 2. 참조자료형 (Reference Type) 리터럴 값을 직접 갖고 있는 것이 아니라 값이 저장된 위치의 주소를 참조하는 변수 배열, 클래스, 인터페이스가 이에 해당. 값을 직접 저장하고 있는 것이 아니라 메모리 주소값만 저장하고 있음 값은 메모리에 저장하고 변수는 메모리의 주소만 저장. 이름 그대로 참조만 하고 있는 것. import java.util.Arrays; public class ArrEx17 { public static void main(String[] args) { // 향상된 for문에 인덱스가 필요한 경우 String[] names = {"토리", "풀이", "모모..
[JAVA] 향상된 for문 향상된 for문 값을 읽을 수만 있고 변경할 수 없음 public class ArrEx16 { public static void main(String[] args) { // 향상된 for문 // 값을 읽을 수만 있고 변경할 수 없음 int[] arr = {1,2,3,4,5,6}; // 기존 for문 for(int i=0; i
[JAVA] 배열 복사 배열 복사 3가지 방법 1 : for문 이용, 2 : arraycopy, 3 : Array 클래스의 copyof() 메서드 package makeApp0730; import java.util.Arrays; public class ArrEx13 { public static void main(String[] args) { // 배열 복사 방법 1 : for문 이용 // 원본 배열. 모든 방법에서 사용함. int[] arrInt = {1,2,3}; // 복사할 배열 int[] arrInt2 = new int[5]; // 복사할 배열에 값 대입 for(int i=0; i
[JAVA] 로또 번호 생성 프로그램 로또는 사본 적 없습니다 하지만 로또번호를 생성하는 코드는 짤 수 있습니다 :) public class Lotto { public static void main(String[] args) { // 로또 번호 생성 프로그램 // 1. 로또 번호를 담을 길이가 6개인 정수 타입 배열 변수 생성 int lotto[] = new int[6]; int idx = 0; while(true) { int number = (int)(Math.random()*45)+1; // 2. 1~45까지 번호 중 하나를 선택 boolean insert = true; for (int i = 0; i
JAVA 네트워크 _클라이언트/서버(client/server) 소켓 프로그래밍 Socket을 통해 client(사용자)와 server(예를 들면 구글, 네이버)를 연결 package exam01; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; public class SocketServer { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(5001); //포트 번호. 운영체제는 프로세서를 포트번호로 관리. //운영체제가 관리하는 프..