전체 글 94

String 클래스 메소드 정리

startsWith : 문자열이 지정한 문자로 시작하는지 (대소문자 구별) String string = "abcdea"; System.out.println(string.startsWith("a")); //true System.out.println(string.startsWith("b")); //false endsWith : 문자열이 지정한 문자로 끝나는지 (대소문자 구별) String string = "abcdea"; System.out.println(string.endsWith("a")); //true System.out.println(string.endsWith("b")); //false equals : 두 개의 String을 비교해서 같은지 String string = "abc"; System.ou..

StringBuilder, StringBuffer

문자열 이어붙이기 StringBuilder에는 연결하고자 하는 문자열을 넣어 붙일 수 있는 append()라는 메소드가 있다. 하지만 평소 문자열을 이어붙일 때 String a = "문자열을"; System.out.println(a); String a = a + "붙여보자"; String a = a; System.out.println(a); input output 문자열을 문자열을붙여보자 이런 간단한 방법을 사용했는데(혹은 concat 메소드) 왜 굳이 StringBuilder.append() 를 사용하는 것인지 궁금했고, 둘의 차이를 알아보았다. 메모리 할당과 해제 📢 And you know, object create always takes more time than other operations, …..

조합(Combination)

위 식을 재귀를 사용해 짜면, import java.util.Scanner; public class Main07 { int[][] temp = new int[35][35]; //숫자가 커지면 소요 시간이 기하급수적으로 커짐 // 이를 방지하기 위한 배열 public int Combination(int n, int r) { if(temp[n][r] > 0) return temp[n][r]; if(n==r || r==0) return 1; else return temp[n][r] = Combination(n-1, r-1) + Combination(n-1, r); } public static void main(String[] args) { // TODO Auto-generated method stub Main..

Java Programming Language

운영체제로부터 독립적 자바는 운영체제로부터, 플랫폼으로부터 독립적이기 때문에 프로그램의 변경 없이 다양한 환경에서 실행 가능하다. 이런 특징 덕분에 인터넷 환경에 적합하다. 이는 일종의 Emulator(다른 프로그램이나 장치를 모방하는 프로그램)인 JVM(자바 가상머신) 덕분에 가능한 것인데 자바 응용 프로그램은 HW가 아닌 JVM하고만 통신하고 JVM이 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다. 객체지향언어이다 객체지향언어의 하나이다. 즉, 상속, 캡슐화, 다형성 등의 특성을 갖추고 있다. 자동 메모리 관리 자바 응용 프로그램이 실행되면 Gabage Collector(가비지 컬렉터)가 자동적으로 메모리를 관리하주기 때문에 프로그래머 입장에서 따로 메모리를 ..

[Java] 2023.02.19

Java 배열 정렬 방법

배열의 정렬을 손쉽게 할 수 있는 방법에는 Arrays.sort가 있다. 오름차순 정렬은 다음과 같다. private void arraySort(){ int[] arr = new int[]{5,3,1,4,2}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); // [1,2,3,4,5] } arr 혹은 arr.toString() 출력 시 ⇒ [I@2133c8f8 (배열의 주소값이 출력) Arrays.toString(arr) 출력 시 ⇒ [1, 2, 3 ,4 ,5] (배열 값 출력) 내림차순 정렬에는 Collections.reverseOrder() 를 사용하면 된다. private void arraySort(){ int[] arr = new int[..

Spring 과 Spring Boot 의 차이

Python을 이용한 Django, Ruby를 이용한 Ruby on Rails, Javascript를 이용한 Node.js가 있듯이 Spring은 Java를 기반으로 하는 웹 어플리케이션 제작이 가능한 프레임워크이다. IoC(제어의 역전)와 DI(의존성 주입), AOP(관점지향 프로그래밍) 등의 장점을 갖고 있다. 그럼 Spring Boot는 뭘까? Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". "스프링부트로 [단순 실행]만 하면 되는 스프링 기반의 어플리케이션을 쉽게 만들 수 있다." 이와 관련해 다음의 이미지들이 정말 잘 와닿았다. 즉 Sp..

API - 3 (PUT, DELETE)

PUT 수정을 요청하는 PUT API 를 만들어 보자. CarController.java 에 다음 코드를 추가하면 된다. @PutMapping("/api/cars/{id}") //변경할 데이터 ID 까지 public void updateCar(@PathVariable Long id, @RequestBody CarRequestDto carRequestDto){ carService.update(id, carRequestDto); } 이전의 @GetMapping, @PostMapping 과 URL 이 조금 다르다는 것을 알 수 있는데, 해당하는 ID 값을 가진 데이터를 찾아서 수정해야 하기 때문에 {id} 를 추가해줬다는 차이가 있다. 이는 PUT 방식으로 위 주소로 이동했을 때 작동하는 updateCar 메..

REST / REST API / RESTful 간단히 정리

REST 지금까지는 간단하게 REST 란 서버의 응답이 JSON 형식일 때, 혹은 주소에 명사를, 요청방식에 동사를 사용해 의도를 명확하게 하는 것 이라 정의했다. 조금 더 정확하게 설명하자면 REST(Representational State Transfer) 란 웹에 존재하는 모든 자원에 고유한 URI 을 부여하여 활용하는 것을 의미한다. 자원을 구분하여 해당 자원의 상태/정보를 주고 받는 모든 것을 의미한다. 라고 할 수 있다. 여기서 말하는 자원에는 이미지, 동영상, DB 등이 있다. - HTTP URI 을 통해 자원 명시. - HTTP Method(POST, GET, PUT, DELETE) 를 통해 해당 자원에 대한 CRUD operation 적용 Resource (자원) 자원은 Server 에 ..

API - 2 (GET, POST)

참조 - API란 무엇인가요? AWS : https://aws.amazon.com/ko/what-is/api/ API란 무엇인가요? - API 초보자를 위한 가이드 - AWS aws.amazon.com API 는 간단하게 클라이언트와 서버간의 약속이라고 설명할 수 있다. 클라이언트가 서버에게 요청을 보내면, 서버가 요구사항을 처리한 후 응답하는 것이다. REST(Representational State Transfer) 는 클라이언트가 서버 데이터에 액세스 할 때 사용 가능한 GET, POST, PUT, DELETE 등의 함수 집합을 정의한다. 간단히 정리하자면 REST 란 주소에 명사를, 요청 방식에 동사를 사용해 의도를 명확히 드러내는 것을 의미한다. 동사는 JPA 에서 배웠던 CRUD 를 생각하면 ..

DTO

DTO에 대해 설명하기 전에 MVC패턴을 이해할 필요가 있다. MVC 패턴은 애플리케이션을 Model, Controller, View 세 가지로 구분하는 디자인 패턴이다. Model : DB와 관련된 일을 한다. View : 데이터를 받아서 표현하거나 사용자 요청을 받는다. Contoller : Model에서 데이터를 받아 View로 전달해주거나 View에서 들어온 요청을 해석해 Model을 변경한다. 비즈니스 처리로직(Model)과 UI(View)의 중간에서 Controller가 이들을 연결해주는 역할을 한다. 서로 분리함으로써 각자 역할에만 집중하게 하는 것이다. 이런 경우 유지보수, 확장, 유연성, 중복해결 등 다양한 측면에서 유리해진다. DTO(Data Transfer Object) 란 이러한 계..