백엔드 멘토링 28

2023/04/10 - Spring 공부중 관련 질문들 [2]

생성자 생성자는 간단하게 얘기하면 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'이다. 따라서 인스턴스 변수의 초기화 작업에 사용되고, 인스턴스 생성 시에 실행되어야 할 작업을 위해서 사용된다. 생성자의 이름은 클래스의 이름과 같아야 한다. 생성자는 리턴 값이 없다. void 또한 사용하지 않는다. 생성자는 몇 가지 특징을 제외하면 메소드와 다르지 않다. 생성자는 메소드 처럼 클래스 내에 선언되고, 오버 로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다. JPA, JPA와 SQL mapper의 차이 JPA : (Java Persistence Api)의 약자로 자바 언어를 기반으로 한 ORM입니다. 이는 객체와 관계형 데이터베이스 간의 매핑을 처리해주며 개발자가 객체를 생성하고..

백엔드 멘토링 2023.04.13

2023/04/10 - Spring 공부중 관련 질문들 [1]

REST Api REST API : REST API란 REST를 기반으로 만들어진 Api를 뜻합니다. - 여기서 REST란? Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. REST는 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. REST Api의 특징은 1. Client(서버-클라이언트 구조) 2. Stateless(무상태) 3. Cacheable(캐시 처리 가능) 4. Laye..

백엔드 멘토링 2023.04.13

2023/04/05 - java 11, 17 특징

먼저 Java 11이다 8버전과 비교하여 11버전 에서 추가된 기능들로는 인터페이스에 private 메서드 가능 (java 9) 이외에 컬렉션, 스트림, Optional에 몇몇 메서드 추가 (java 9) G1 GC가 디폴트 GC로 설정 (java 9) var 키워드 사용 가능 (java 10) OpenJDK가 Oracle JDK로 통합 이 있고 11버전과 비교하여 17버전에 추가된 기능들은 record 키워드 사용 가능 (자바 14) NullPointerException이 어떤 변수에 의해 발생했는지 설명 (자바 14) sealed 키워드 사용 가능 (자바 15) ZGC 도입 (자바 15) 등이 있다.

백엔드 멘토링 2023.04.07

2023/03/26 - 객체지향 개념 및 UML,CBD,SOA

- 객체 지향 프로그래밍 언어에 대해 어떻게 생각하나? : 객체 지향 프로그래밍 언어란 객체를 생성하고 객체를 사용하는 프로그래밍 언어입니다. 이전의 프로그래밍 언어들 보다 더 기계가 아닌 현실세계 즉 인간에 초점을 맞추어 개발자들의 사고방식을 프로그래밍에 접목시켜 개발을 더욱 쉽게 만들어 주었다고 생각합니다. 또한 객체지향 프로그래밍을 하면 더 유연하고 코드의 재사용을 극대화 시킬 수 있다는 장점또한 있습니다. - 객체지향에서 객체는 무슨 기준으로 나누나? : 먼저 객체지향에서의 객체는 책임을 기준으로 나누어지고, 한 객체는 하나의 책임을 가지게 됩니다. 하지만 개발자가 인지하고 사고하는 방식에 따라 책임의 기준이 달라지므로 정확한 기준점은 없다고 생각합니다. - 자바 언어에서는 객체 지향 프로그래밍을..

백엔드 멘토링 2023.04.07

2023/03/17 - 서블릿, CGI, JSP, MVC패턴

서블릿이란? 서블릿이란 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술이다. 즉 다시 말해, 자바로 웹을 만들기 위해 사용하는 기술로, 클라이언트의 요청을 처리하여 응답을 해주는 프로그램이다. (자바 소스코드 속에 HTML코드가 들어가는 형태) 서블릿들은 서블릿 컨테이너 내에서 관리되며 사용자의 요청에 맞는 서블릿을 사용하여 응답을 보내주는 형식. 서블릿 컨테이너의 역할 웹서버와의 통신 지원 서블릿 생명주기 관리 멀티쓰레드 지원 및 관리 선언적인 보안 관리 JSP란? JSP는 Java Sever Page의 약자로 서블릿과는 반대로 HTML코드 안에 자바 코드가 들어가 있는 형식이다. 이를 사용하여 웹 서버에서 처리되고 웹 브라우저로 전송..

백엔드 멘토링 2023.03.28

OSI 7계층 및 TCP/IP 4계층 정리

OSI 7계층이란? OSI 7계층은 네트워크 통신이 진행되는 과정을 7가지로 나눈 것이다. - OSI 7계층으로 나눔으로서 통신이 진행되는 과정을 단계별로 확인이 가능하기 때문에 통신에 문제가 발생할 시 문제가 발생한 부분만 수정할 수 있다. TCP/IP 4계층이란? 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층이었다면, 이 이론을 실제로 사용하는 인터넷 표준이 TCP/IP 4계층이다. OSI 7계층, TCP/IP 4계층 * OSI 모델과 TCP/IP 모델 비교 - TCP/IP 프로토콜은 OSI 모델보다 먼저 개발되었다. 그러므로 TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지 않는다. - 두 계층을 비교할 때 , 세션(Session)과 표현(presentation) 2..

백엔드 멘토링 2023.02.26

2023.02.03 - java 8 의 optional은 무조건 사용하는게 좋을까??

Optional이란 java 8 에서 처음 나온 기능으로 Null 값을 가질 가능성이 있는 객체를 감싸는 Wrapper 클래스 이다. Null을 직접 다룰 경우에는 위험성이 커 Optional 객체를 사용하면 더욱 효과적인 처리가 가능하며, 코드가 Null-Safe 해지고 가독성이 좋아지며, 코드가 안정적이 된다. 먼저 Null이 될 수 있는 객체를 직접 다룰 시에 발생할 수 있는 문제점이다. public String priceFormCar(Car car) { return car.getOwner().getPhoneNumber(); } 위와 같이 자동차(Car) 객체의 주인(owner)의 휴대폰 번호 (phoneNumber)를 가져오는 메소드가 있다고 할 때, 만약 Car car가 null값으로 들어올 경..

백엔드 멘토링 2023.02.03

2023.02.01 - Java 8의 특징

먼저 자바의 버전에 대해서 말하자면 Java는 6개월에 새로운 버전을 출시하며, 3년 마다 LTS 버전을 출시한다는 정책을 가지고 있다. 여기서 LTS란 Long Term Support의 약자로 유지보수를 지원하는 버전이다. 쉽게 말해 자바의 새로운 버전이 6개월 마다 나온다고 하더라도 LTS 버전은 여전히 지원이 된다는 얘기이다 현재까지 출시된 LTS 버전들은 다음과 같다. 2014년 java 8 2017년 java 11 2021년 java 17 javaSE9 이후로는 2년 마다 LTS 버전을 출시하기로 했다. 2014년에 나왔음에도 불구하고 현재까지도 java 8을 사용하는 업계들이 많기에 java 8 의 특징을 알아놓는 것은 매우 유용하다. java 8 의 특징 Lambda (람다) 표현식 java..

백엔드 멘토링 2023.02.02