본문 바로가기

전체 글51

객체지향 프로그래밍 OOP란? 들어가며, 객체지향 프로그래밍이 무엇인지 왜 객체지향 프로그래밍이 좋은지 궁금해서 알아보게되었다. OOP의 특징 1. 캡슐화 (Encapsulation) 캡슐화란 하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것을 의미한다. 따라서 클래스를 우리가 만들 떄 훗날 이 클래스에서 만들어진 객체가 특정한 목적을 잘 수행할 수 있도록 사용해야할 변수와 그 변수를 가지고 특정한 액션 즉 메서드를 관련성 있게 클래스에 구성해야한다. 정보은닉 그리고 캡슐화를 하는 중요한 목적은 바로 정보은닉이다. 유저 정보를 가지고 있는 User라는 객체에서 유저의 정보가 public으로 선언되어 있다면, 누구든 접근해서 유저 정보를 변경할 수 있다. 그렇기 때문에 private로 해서 데이터.. 2023. 11. 8.
[Spring] Spring boot를 사용한 REST API 들어가며, @RequestMapping을 사용하여 모든 HTTP 메소드를 처리하던 이전 방식과는 다르게, 최신 방식은 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping 등을 사용한다. URI 엔드포인트는 동일하게 사용하되, 어노테이션만 다르게 설정하여 REST API를 처리한다. 또한 메소드 이름 또한 readPerson, deletePerson 과 같이 명확하게 사용하면 REST 스타일에 가깝게 코딩할 수 있다. @RestController // Rest API를 처리하는 Controller 임을 의미 @RequiredArgsConstructor @RequestMapping("/api") public class PersonCon.. 2023. 11. 5.
[Spring] CRUD 란 무엇인가 들어가며, 맨 처음 시작하는 Todo, 게시판 프로젝트를 할 때 가장 기본적으로 사용되는 기능인 CRUD를 초보자도 쉽게 이해할 수 있도록 설명해보자. CRUD란? : 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능 SQL의 기본 4대 요소 REST API에서는 CRUD 이런 작업들을 method 라고 부름 REST API는 웹의 통신 규약인 http를 이용하기 때문에 http가 가지고 있는 메소드를 이용 Create 생성 실제 웹 애플리케이션은 폼을 이용해서 데이터를 전송할 때 수정 생성 삭제를 할 때 모두 post를 사용하지만 본래 post는 생성을 위해 준비된 기능이였다. http에서 create를 위해 준비된 메소드는 post (메소드) Read 읽기 get (메소드) http에서 .. 2023. 11. 5.
REST API 와 Http... 대체 무엇인가? REST API의 특징을 잘 정리해놓은 블로그 :https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html 네트워크 OSI 7계층   7계층응용 계층HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.6계층표현 계층 5계층세션 계층데이터가 통신하기 위한 논리적인 연결4계층전송 계층TCP프로토콜3계층네트워크 계층라우터(도로의 길을 잘 찾아갈 수 있게하는)2계층데이터 링크계층허브 등1계층물리계층통신 케이블 우리가 여기서 중요하게 볼 개념은 7계층의 HTTP이다. 그렇다면 REST API와 HTTP는 무슨 상관이 있는걸까?개념을 정리해보자. REST APIREST API 설계 시 가장 중요한 항목URI는 정보의 자원을 .. 2023. 11. 4.
[Git] Git 컨벤션 지키기 참고 자료, 블로그 들어가며, git 메세지를 작성할 때 중요한 git 컨벤션 지키는 방법에 대해 알아보겠습니다. 메시지 구조 먼저 커밋 메시지는 크게 제목, 본문, 꼬리말 세 가지 파트로 나누고, 각 파트는 빈줄을 두어서 구분합니다. type(옵션): [#issueNumber - ]Subject // -> 제목 (한 줄을 띄워 분리합니다.) body(옵션) // -> 본문 (한 줄을 띄워 분리합니다.) footer(옵션) // -> 꼬리말 type : 어떤 의도로 커밋했는지를 type에 명시합니다. 자세한 사항은 아래서 설명하겠습니다. subject : 최대 50글자가 넘지 않도록 하고 마침표는 찍지 않습니다. 영문으로 표기하는 경우 동사(원형)를 가장 앞에 두고 첫 글자는 대문자로 표기합니다. body : 긴 설명이 필.. 2023. 11. 4.
[Java] split() 함수로 문자열 자르기 들어가며, 이번에는 Java에서 String을 다룰 때 유용하게 사용할 수 있는 split 함수를 알아보도록 하겠습니다. 참고로 split의 뜻은 분열, 나뉘다 입니다. Split의 사용방법에는 두 가지가 있습니다. 1. split(String regex); 구분자를 바탕으로 배열 형식으로 문자열을 잘라줍니다. String str = "Hello World"; String[] ArraysStr = str.split(" "); 2. split(String regex, int limit); 구분자를 바탕으로 배열 형식으로 문자열을 자르지만, limit 수만큼 잘라줍니다. String str = "가나다라,마바사아,자차카타"; String[] ArraysStr = str.split(","); 자 그렇다면, 1.. 2023. 11. 3.
[Spring] JPA란 ? 들어가며, 스프링 공부를 하다가 JPA라는 큰 개념이 나왔다. 따라서 개념을 알고 가기 위해 JPA를 정리해보고자 한다. JPA (Java Persistence API) 란? 자바 ORM 표준 자바 애플리케이션에서 데이터베이스와 상호작용하는 데 사용되는 자바 프로그래밍 인터페이스 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현함 왜 JPA를 사용해야 할까? 현대의 어플리케이션 개발 시 대부분은 OOP(객체지향 프로그래밍) 언어를 사용한다. 데이터를 저장하기 위해 관계형 데이터베이스(이하 RDB)를 사용한다. (DB는 거의 99% RDB를 사용한다고 보면 된다.) 언어는 OOP를 쓰고 DB는 RDB를 .. 2023. 10. 29.
[Java] String =" " 와 new String(" ")의 차이 이번 글은 헷갈리기 쉬운 String =" " 와 new String(" ")의 차이에 대해 얘기해보려한다. 바로 시작해보겠다. 아래는 String =" " 와 new String(" ")를 사용한 코드이다. 이를 분석해보자 public class StringExample { public static void main(String [] args) { String a = new String("Hello"); String b = "Hello"; String c = "Hello"; } } a 는 heap 메모리에 개별 객체가 만들어지고, b 와 c 는String Constant Pool에 만들어진 하나의 객체를 참조한다. 따라서 총 2개의 String 객체가 생성된다. 두 가지 방식 모두 String 객체를 .. 2023. 10. 27.
[Linux] 컴파일(Compile)에 대한 이해 컴파일 과정 컴파일 과정은 4가지 단계(전처리 과정 - 컴파일 과정 - 어셈블리 과정 - 링킹 과정)로 나누어 진다. 이 4가지 단계를 묶어서 컴파일 과정, 빌드 과정이라고 부르기도 하고 컴파일 과정과 링킹 과정을 따로 나눠서 부르기도 한다. 보통 빌드 과정은 컴파일 과정보다 넓은 의미(빌드=컴파일+링킹)로 사용되는데 상황에 맞게 이해하면 될 거 같다. 그럼 각 단계별 과정에 대해 자세히 알아보자. 1. 전처리(Pre-processing) 과정 전처리(Pre-processing) 과정은 전처리기(Preprocessor)를 통해 소스 코드 파일(*.c)을 전처리된 소스 코드 파일(*.i)로 변환하는 과정이다. 이 과정에서 대표적으로 세 가지 작업을 수행한다. 주석 제거 : 소스 코드에서 주석을 전부 제거한.. 2023. 10. 27.
[Linux] script 명령 script 는 무엇인가? :사용 중인 터미널 세션에 대한 기록을 파일로 저장하는 명령어입니다. script명령어는 사용자가 터미널 화면에서 작업한 명령어에 대한 기록들을 로그로 남기기 위하여 저장하거나 터미널 화면을 다른 사용자와 실시간으로 공유할 수도 있습니다. script 명령어 사용법 $ script [옵션] [저장할파일명] 리눅스 script 명령어에 저장할 파일명을 입력하면 "Script started, file [파일명]"이라는 문구가 출력이 되면서 이 순간부터 터미널에 행동하는 모든 것들이 지정한 파일명에 저장됩니다. script 명령어를 종료하고 싶다면 터미널에 exit를 입력하거나 ctrl+d를 입력하면 "Script done, file is [파일명]"과 함께 script가 종료됩니다.. 2023. 10. 16.