목록데브코스 웹 백엔드 (15)
영권's
객체지향 프로그래밍이란 프로그램의 동작을 객체 단위로 나눠서 수행할 수 있도록 하는 것이 객체지향 프로그래밍이다. 객체지향 프로그래밍을 어떻게 하면 객체 단위로 잘 나누고 연관 지을 수 있는가? 에 대한 5가지 원칙이 있습니다. 객체지향 설계를 하는 5가지 원칙(SOLID) SRP(Single responsibility principle) / 단일 책임 원칙 하나의 클래스(객체)는 하나의 책임만 가져야한다. OCP(Open / closed principle) / 개방-폐쇄 원칙 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. LSP(Liskov substitution principle) / 리스코프 치환 원칙 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스..
StringBuilder와 StringBuffer는 무슨 차이가 있는가? 먼저 String 과 StringBuilder,StringBuffer 와의 큰 차이점은 String은 불변(immutable)의 속성을 갖는다는 점입니다. String 객체를 생성하는 방법은 new 연산자를 이용하는 것과 리터럴을 이용한 방식이 있다. 리터럴을 이용하여 사용하면 String 값은 JVM 메모리 내의 Heap영역에 "String Constant Pool"에 저장되어 사용되지만, new 연산자로 생성하면 같은 내용이라도 여러개의 객체가 각 Heap 영역을 차지한다. 같은 "cat" 이라는 문자열이지만 리터럴로 생성한 cat1 과 cat2는 같은 객체를 참조하고 cat3은 다른 객체를 참조한다. 하지만 StringBuil..
데브코스 백엔드 과정에서 공부하면서 JAVA 개발환경 세팅에 대해서 보다가 환경변수에 클래스패스 세팅하는 것을 보았는데 예전에 백기선님 온라인 스터디에서 공부하였을 때 환경변수에 시스템 변수로 설정하는것은 문제가 발생할 수 있다라고 공부한 기억이 있어서 어떻게 하는것이 맞을지 공부하고 흐려진 기억을 다시 되새기면서 정리하기로 하였습니다. 먼저 클래스패스에 대해서 알아보자 클래스패스란, JVM이나 Java 컴파일러에 사용자정의 클래스와 패키지의 위치를 지정해주는 파라미터이다. 쉽게 말해, 자바가 클래스를 찾아 사용을 해야하는데, 클래스들이 어디 있는지 위치를 지정해주는 값이다. 좀더 자바의 관점에서 말한다면 JVM이 프로그램을 실행할 때, 클래스 파일을 찾는 데 기준이 되는 파일 경로를 말합니다. 소스 코..