본문 바로가기
728x90

Back-end63

[Java] 자바 공부 - 4, package란? C++나 여타 다른 언어에서 프로젝트를 폴더에 나눠 관리하는 방식으로 코딩을 많이 진행했는데, 이번에 자바를 공부하니 패키지라는 단위로 소스 코드들을 나눠 관리하는 방식을 처음 접하게 되어서 공부 목적으로 자바 패키지에 대해 정리해보려 합니다. Java Package란? 자바 패키지(Java package)는 자바 클래스들을 여러 namespace로 정리하며, 소속된 각 class에 대해 고유한 namespace를 제공한다. 동일한 package 내의 class들은 서로의 package-private 및 protected 멤버들에 접근할 수 있다. 자바 패키지는 jar 파일이라는 압축 파일에 저장할 수 있으며, 클래스들을 하나씩이 아닌 묶음으로 더 빠르게 다운로드할 수 있다. - 위키백과 (자바 패키지).. 2022. 12. 26.
[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더 1 - 일반 헤더 HTTP message 중에서도 header에 대한 간단한 복습 header-field = field-name":" OWS field-value OWS (OWS는 띄어쓰기 허용을 의미) field-name에는 대소문자 구분이 없다. HTTP header 용도 HTTP 전송에 필요한 모든 부가 정보를 담는 부분이다. 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등.. 표준 헤더가 너무 많다. 필요시 임의의 헤더 추가가 가능하다. helloworld: hihi 이런 식으로? 과거의 HTTP 헤더 분류 General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close Request 헤더: 요청 정보, 예) User-Age.. 2022. 12. 25.
좋은 객체 지향 프로그래밍이란? 객체 지향 프로그래밍의 정의? 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경에 용이하게 만들기 때문에, 대규모 소프트웨어 개발에 많이 사용된다. 유연하고 변경에 용이하다는 것의 의미란? 레고 블록을 조립하듯이 키보드, 마우스를 갈아 끼우듯이 컴퓨터 부품을 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법을 말한다!! 그것이 바로 다형성을 의미한다!! 다형성의 실세계 비유 실세계와 객체 지향을 1:1로 정확하게 매칭하기에는 무리가 있음 그래도 비유를 하는 것이 .. 2022. 12. 24.
좋은 객체 지향 설계의 5가지 원칙 (SOLID) SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리했다. SRP: 단일 책임 원칙 (single responsibility principle) OCP: 개방-폐쇄 원칙 (open/closed principle) LSP: 리스코프 치환 원칙 (Liskov substitution principle) ISP: 인터페이스 분리 원칙 (Interface segregation principle) DIP: 의존 관계 역전 원칙 (Dependency inversion principle) SRP 단일 책임 원칙 - single responsibility principle 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수도 있고, 작을 수도 있다. 문맥과 .. 2022. 12. 24.
Spring 이란? Spring의 생태계에는 다음과 같이 굉장히 다양한 기술들이 존재한다. 스프링 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케줄링 테스트: 스프링 기반 테스트 지원 언어: 코틀린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용한다. 위와 같은 기능들을 제공하는 것을 통합해서 스프링 프레임워크라고 부르고, 강의에서는 그중에서도 핵심 기술에 대한 이해를 위주로 다룬다. 나머지는 이것에서 파생된 개념들이다. 지금 실무에서는 스프링 부트를 기본으로 깔고 들어간다고 함. 스프링 부트 스프링을 편리하게.. 2022. 12. 23.
[모든 개발자를 위한 HTTP 웹 기본 지식] 6. HTTP 상태 코드 1. HTTP 상태 코드 client에 보낸 요청(request)의 처리 상태를 응답(response)에서 알려주는 기능이다. 1XX (Informational): 요청이 수신되어 처리 중 2XX (Successful): 요청 정상 처리 3XX (Redirection): 요청을 완료하려면 추가 행동이 필요 4XX (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5XX (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못한다. 만약에 모르는(정의되지 않은) 상태 코드가 나타난다면?? 클라이언트는 상위 상태 코드로 해석해서 처리한다. 디테일한 사항을 몰라도 큰 틀에서는 이해할 수 있기 때문이다. 미래에 새로운 상태 코드가 추가되어도 클라이언.. 2022. 12. 21.
728x90