[SpringBoot] Spring Boot 기초: 개발환경 설정과 Postman을 통해 RESTFul API 설계 및 테스트하기
·
Backend & Infra/SpringBoot
Spring Boot 개발환경 설정, 포스트맨 테스트 & 깃 관리 정리유레카 미니 프로젝트 진행 전, 개인 공부를 위해 작성한 자료입니다. 스프링부트란?Spring Boot는 스프링 프레임워크의 복잡한 설정을 단순화하여 빠르고 효율적인 애플리케이션 개발을 가능하게 하는 프레임워크입니다. 주요 특징은 다음과 같습니다:자동 설정(Auto Configuration): 애플리케이션 실행 환경에 맞게 필요한 설정을 자동으로 구성해줍니다.독립 실행형 애플리케이션: 내장 톰캣, 제티 등 웹 서버를 포함하여 별도의 서버 설치 없이 애플리케이션을 실행할 수 있습니다.프로덕션 친화적 기능: 모니터링, 로깅, 보안 등 프로덕션 환경에 필요한 다양한 기능을 제공합니다.개발환경개발환경에 따라 설정 방법에 차이가 있을 수 있으니..
[SWEA] 6808번: 규영이와 인영이의 카드게임 (Java)
·
PS
문제 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  개념순열, 백트래킹  실행 결과#1 112097 250783#2 250783 112097#3 336560 26320#4 346656 16224    구현 코드(Java)import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class Solution { static int winCount = 0; static int loseCount = 0; // swap permutation을 위한 스왑 함수 public static void swap(int[]..
자바기반응용프로그래밍 - 주요 패키지와 클래스
·
Language/JAVA
자바의 주요 패키지 java.lang: 스트링, 수학 함수, 입출력 등, 기본적인 거라 import 문 필요 없음! java.util: 날짜, 시간, 벡터, 해시맵 등 java.io: 키보드, 모니터, 프린터 등의 입출력 관련 java.awt: 자바 GUI 프로그래밍 관련 Object 클래스 java.lang 패키지에 포함, 모든 클래스의 슈퍼 클래스이므로 강제로 상속됨 주요 메소드 boolean equals(Object obj) obj가 가리키는 객체와 현재 객체를 비교. t / f 객체의 내용만 비교함. (레퍼런스까지 비교하기 위해서는 == 연산자를 사용해야!) Class getClass() 현 객체의 클래스를 리턴 int hashCode() 현 객체의 해시코드 값 리턴 String toString(..
자바기반응용프로그래밍 - 모듈과 패키지 기초
·
Language/JAVA
패키지란? 관련있는 클래스/인터페이스들의 컴파일된 .class 파일들을 하나의 디렉토리에 묶어놓은 것 이렇게 패키지 별로 분류하면, 같은 이름을 사용해도 다른 파일로 취급하기 때문에 협업에 유리함 모듈이란? 여러 패키지와 이미지 등의 자원을 모아놓은 컨테이너 응용프로그램의 실행에 적합한 모듈들로만 실행 모듈 사용하기 // import를 이용하지 않은 경우 java.util.Scanner scanner = new java.util.Scanner(System.in); // import를 이용한 경우 import java,util.Scanner; // 특정 클래스의 경로명만 포함 import java,util.*; // 패키지 내의 모든 클래스 포함 Scanner scanner = new Scanner(Sys..
자바기반응용프로그래밍 - 추상메소드, 추상클래스, 인터페이스
·
Language/JAVA
추상 메소드 선언되어 있으나 아직 구현되지 않은 메소드, abstract로 선언 이후 반드시 서브클래스에서 오버라이딩 하여 구현 필요! 추상 클래스 추상 메소드를 하나라도 가졌다면 반드시 추상 클래스로 선언해야 함(없어도 추상 클래스로 선언 가능) 객체 생성 불가 슈퍼 클래스에서는 개념 정의, 서브 클래스마다 목적에 맞게 추상 메소드 다르게 구현 추상 클래스를 상속 받는 서브 클래스: 추상 메소드를 구현하지 않으면 abstract으로 선언해야 함 추상 메소드를 구현하면 추상 클래스 x => @Override로 검사하기 (코드) 인터페이스 클래스가 구현해야 할 메소드들이 선언되는 추상형, interface 키워드로 선언 상수와 추상메소드, default/private/static 메소드 선언 가능 일반 필..
자바기반응용프로그래밍 - 캐스팅, 오버라이딩
·
Language/JAVA
업캐스팅 서브 클래스 객체 타입 => 슈퍼 클래스 타입으로 변환 동일한 슈퍼 클래스를 상속받은 서브 클래스 객체들을 배열로 관리 가능 업캐스팅된 레퍼런스는 객체 내의 슈퍼 클래스 멤버만 접근 가능 class Person { … } class Student extends Person { … } Student s = new Student(); Person p = s; // 업캐스팅, 자동타입변환 다운캐스팅 슈퍼 클래스 객체 타입 => 서브 클래스 타입으로 변환 괄호 안에 변환할 타입 명시 class Person { … } class Student extends Person { … } ... Person p = new Student("이재문"); // 업캐스팅 … Student s = (Student)p; /..
자바기반응용프로그래밍 - 배열
·
Language/JAVA
일차원 배열 선언 및 생성 // 배열 선언 int intArray []; int [] intArray2; // 배열 생성 : new 키워드 + 자료형 + [배열의 크기] intArray = new int[10] intArray2 =new int[20] 배열 선언과 생성 동시에 가능 선언할 때는 배열의 크기 지정하면 안됨!! 생성할 때 지정해주어야함 ex. int intWrongArray[10]; 배열 접근 인덱스 통해 가능. 반드시 생성 후 접근해야 함. 0 < 배열 인덱스 < 배열 크기 - 1 import java.util.Scanner; public class ArrayLength { public static void main(String[] args) { int intArray [] = new in..
자바기반응용프로그래밍 - 상속
·
Language/JAVA
자바의 상속 부모 클래스에 만들어진 필드, 메소드를 자식 클래스가 물려받음 => 코드의 간결화 부모 클래스 : super 클래스 자식 클래스 : sub 클래스 extends 키워드 사용 생성자 호출과 실행 서브 클래스 객체가 생성될 때, 슈퍼 / 서브 생성자 모두 실행됨 호출 순서: 서브 클래스 생성자 => 슈퍼 클래스 생성자 실행 순서: 슈퍼 클래스 생성자 => 서브 클래스 생성자 서브 클래스 생성자 작성원칙 서브 클래스 생성자에서 슈퍼 클래스 생성자를 하나 선택 => super() 만약 선택하지 않았다면, 슈퍼클래스의 기본 생성자를 자동 선택 (실습 코드 연습하고 추가 하거라..)
자바기반응용프로그래밍 - 반복문
·
Language/JAVA
for문 구성 형식: 초기문, 조건식, 반복 후 작업, 작업문 while문 구성형식: 조건식, 작업문 // -1이 입력될때까지 반복 import java.util.Scanner; public class WhileSample { public static void main(String[] args) { int n; int cnt = 0; int sum = 0; Scanner scanner = new Scanner(System.in); System.out.println("정수를 입력하고 마지막에 -1을 입력하세요."); n = scanner.nextInt(); while( n != -1) { sum += n; cnt++; n = scanner.nextInt(); } if(cnt == 0) { System.ou..
자바기반응용프로그래밍 - main() 메소드로 인자 전달
·
Language/JAVA
main() 메소드로 인자 전달 사용자가 입력한 argu 값으로 프로그램을 실행하게 함. Run => Run Configurations => Arguments 탭에서 입력 가능 반드시 한 번 이상 실행해야 탭에 표시됨!! 실습코드 연습 import java.util.Scanner; public class ArgsArrayEx { public static void main(String[] args) { int argsArray [] = new int[args.length]; for(int i = 0; i < args.length; i++) { argsArray[i] = Integer.parseInt(args[i]); } // Integer.parseInt() 정수형으로 형변환 Scanner scanner ..
자바기반응용프로그래밍 - 패키지, 접근 지정자, static, final
·
Language/JAVA
패키지란? 관련있는 클래스 파일들끼리 묶어 놓은 디렉토리 자바의 접근 지정자 클래스나 일부 멤버를 공개하여 다른 클래스에서 접근하도록 허용 클래스 접근 지정 public: 다른 모든 클래스에 접근 허용 ex. public class Class1 default: 같은 패키지의 클래스에만 접근 허용 ex. class Class2 멤버 접근 지정 public: 모든 클래스에 허용 protected: 동일 패키지, 다른 패키지에서 상속받은 서브클래스도 허용 default: 동일 패키지만 허용 private: 동일 클래스만 허용 static 멤버와 non-static 멤버 non-static 멤버 static 멤버 선언 class Sample1 { int n; void g() {...} } class Sample..
자바기반응용프로그래밍 - 메소드, 레퍼런스, 오버로딩, 가비지 컬렉션
·
Language/JAVA
자바의 메소드 구성 접근 지정자 리턴 타입(리턴이 없으면 void) 메소드 이름 메소드 인자 (없다면 비우기, 있다면 자료형까지) 메소드 코드 자바의 인자 전달 call by value: 매개변수가 기본 타입 값일 때 call by reference: 매개변수가 객체나 배열일 때 메소드 오버로딩 메소드 이름만 동일하고, 매개변수의 개수나 타입을 서로 다르게 작성 리턴 타입과 무관. class MethodOverloading { public int getSum(int i, int j) { return i + j; } public int getSum(int i, int j, int k) { return i + j + k; } } 객체 소멸과 가비지 컬렉션 가리키는 레퍼런스가 하나도 없게 된 객체 => JVM..