분류 전체보기 36

Car-Racing 토이 프로젝트 step 1 회고록 (1)

2023.06.15 토이 프로젝트 시작 3학년 여름 방학 때 공부하며 아주...작은..토이 프로젝트를 하나 진행하였다. 자동차 경주 게임을 개발하는 일 이었는데 인터넷을 검색해보니 이미 유명한 프로젝트였고, 여러 코드들도 많이 있었지만 무슨 객기인지 다른 사람의 코드를 보고싶지 않았다. 그걸 보게 되면 처음 설계부터 기능 요구사항 까지 연습하려던 계획이 무산될 것 같았다ㅋㅋ 처음 프로젝트 시작할때는 기능 요구사항, README.md를 먼저 작성해 주었다. 다른 사람들이 어떻게 README를 작성하는지 참고하며 나도 따라 썼던 것 같다. 개발 기간과 개발 환경은 그렇다 쳐도 요구사항 부분은 수정해야 할 부분이 참 많아 보인다. 나는 개인적으로 받고있는 멘토링을 해주시는 멘토분이 코드 리뷰를 해주셨는데, R..

백엔드 멘토링 2023.07.11

일급 컬렉션(First-Class Collection)이란?

Car-racing 미션을 진행하면서 일급 컬렉션이라는 것에 대해 공부해보았고, 사용해보았다. 일급 컬렉션이란? Java에서 일급 컬렉션(First-Class Collection)은 다른 객체와 동등한 지위를 갖는 컬렉션 객체를 말합니다. 일급 컬렉션은 다음과 같은 특징을 가집니다. 컬렉션 객체는 변수나 매개변수에 할당할 수 있다. 컬렉션 객체는 다른 객체와 동등한 지위를 가진다. 컬렉션 객체는 반환값으로 사용할 수 있다. 컬렉션 객체는 필요한 경우 메서드에서 생성할 수 있다. 그냥 간단하게 한 문장으로 말하면 Collection을 Wrapping 하면서, 그 외 다른 멤버 변수가 없는 상태를 일급 컬렉션이라 합니다. 예를 들어보자면 public class Cars { private final List ..

백엔드 멘토링 2023.07.10

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/28 - 추상클래스와 인터페이스의 공통점과 차이

* 추상클래스와 인터페이스의 공통점과 차이* - 먼저 추상클래스와 인터페이스는 가지고 있는 추상 메서드를 구현하도록 강제하고, 인스턴스화가 불가능하다는 공통점을 가지고 있습니다. 하지만, 추상클래스는 확장의 개념으로 extends를 사용하여 자신의 기능을 자식들에게 물려주는 방식이라면, 인터페이스는 설계의 개념으로 implements 를 사용하여 다중상속이 가능하고, 보다 더 추상화 정도가 높습니다. 정리하자면 추상 클래스 관련성이 높은 클래스 간에 코드를 공유하고 싶은 경우 추상 클래스를 상속 받을 클래스들이 공통으로 가지는 메소드와 필드가 많거나, public이외의 접근자(protected, private) 선언이 필요한 경우 non-static, non-final 필드 선언이 필요한 경우 (각 인스..

Java 공부 2023.03.29

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

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

백엔드 멘토링 2023.03.28

[JAVA] 프레임워크 vs 라이브러리 vs API

프레임 워크의 개념에 대해 공부할 때에는 항상 라이브러리의 개념 혹은 API의 개념과 비교하여 공부하는데 프레임 워크란? 프레임워크는 개발자가 Java 프로그래밍 언어로 어플리케이션을 만들기 위해 사용할 수 있도록 미리 만들어 놓은 코드들을 의미한다. 우리가 파워포인트를 만들때 미리 작성된 템플릿을 이용하듯이 프레임워크 또한 우리가 어플리케이션을 만들때 필요에 따라 사용할 수 있도록 미리 작성된 템플릿이라고 알면 된다. 예시로는 Spring Django Node.js 등이 있다. 라이브러리란? 라이브러리의 사전적 정의로는 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 또는 리소스의 집합이다. 이렇게 정리하면 이해가 되기 어려우니 쉽게 말하자면 우리가 직접 작성하는 class외에 빈번하게 사용되..

Java 공부 2023.03.03

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