전체 글39 [Software Engineering]객체지향이 무엇인가요? 절차지향과의 차이점은 뭐죠? 절차지향 프로그래밍이란? 순차적인 처리를 중요시 되며 프로그램이 유기적으로 연결되는 프로그래밍 기법으로 대표적인 언어가 C언어입니다. 절차지향 프로그래밍의 특징 장점 컴퓨터의 처리 구조와 비슷하여 실행속도가 빠르다 단점 유지보수가 어려움 → 왜 유지보수가 어렵나요? 실행 준서가 전해져 있어 코드 순서가 바귀면 다른 결과가 나올 수도 있음 디버깅이 어려움 → 왜 디버깅이 어렵나요? 객체지향 프로그래밍이란? 실제 시계의 객체를 모델링하여 소프트웨어를 개발하는 방법입니다. 객체지향 프로그래밍의 특징 캡슐화 → 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이며 정보은닉, 모듈화, 유연성, 보안성, 성능 저하, 접근 제어자를 이용한 접근 제한 등의 특징을 가지고 .. 2023. 3. 16. [Network] 프론트 프록시와 리버스 프록시가 무엇이고 어떤 차이가 있는지 proxy란? 대리라는 의미로 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 말함. forward proxy 클라이언트가 포워드 프록시 서버에 요청을 받고 인터넷에 연결하여 결과를 클라이언트에 전달한다. 프록시 서버는 Cache를 사용하여 자주 사용하는 데이터는 저장했다가 가져올 수 있기에 성능 향상이 가능하다. reverse proxy 클라이언트가 인터넷에 데이터를 요청하면 WAS 앞단에서 받는다. 그리고 내부 서버에서 데이터를 받아 클라이언트에 응답한다. 때문에 클라이언트는 리버스 프록시에만 요청하면 되고 db접근도 식별할 수 있기에 보안적인 측면에서 우세하다. 그리고 로드 밸런싱이나 서버 확장을 할 수 있다. 차.. 2023. 3. 15. [java] 생성자에 대해 설명해주세요. - 좀 더 정리 필요 생성자란? 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드로 인스턴스 변수 초기화에 주로 사용되고 인스턴스 생성 시 실행되야하는 작업을 위해 사용됨. 생성자 사용하는 법? 생성자는 클래스 안에 사용되고 클래스의 이름과 같지만 리턴값이 없고 void도 사용하지 않습니다. 또한 메서드와 비슷하게 생겼습니다. 예) Card c = new Card(); 생성자의 역할 수행 과정 new 연산자에 의해 heap 메모리에 클래스의 인스턴스 생성 생성자 호출되어 수행됨 new 연산자의 결과로 생성된 클래스 인스턴스의 주소가 반환되어 참조 변수에 저장됩니다. 생성자의 종류 기본 생성자 모든 클래스에는 반드시 하나 이상 있는 생성자 하나 이상의 기본 생성자를 정의하지 않아도 인스턴스 생성할 때 에러가 나지 않는데, .. 2023. 3. 15. [Java] 제네릭이란 무엇이고 사용하는 이유를 설명해주세요 제네릭(generic)이란? 자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미하는데, 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다. 1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다. 2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다. 3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다. 2023. 3. 15. [Java] OOP 5대 설계 원칙은 무엇인가요 단일 책임 원칙 Single Responsibility Principle 하나의 클래스는 하나의 책임만 가져야한다. 영향 받는 클래스만 모아두었다면 srp 원칙을 잘 따른 것이라 볼 수 있습니다. 개방 폐쇄 원칙 Open Closed Principle 높은 응집도와 낮은 결합도로 하나의 클래스가 하나의 책임 또는 관심사에만 집중되어야 하고 책임과 관심사가 다른 객체와는 결합도가 낮아야 한다. 리스코프 치환 원칙 Liskov Substitution Principle 객체는 프로그램의 정확성을 깨지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 인터페이스 분리 원칙 Interface Segragation Principle 범용 인터페이스 하나보다 특정 클라리언트를 위한 여러 개의 인터페이스 분리가 .. 2023. 3. 15. [Database] 객체 관계 매핑(ORM)이란? orm이란? Object Relational Mapping의 약자로 OOP의 객체와 RDB에 쓰이는 데이터인 테이블을 자동으로 매핑하는 것을 말합니다. 원래는 객체와 테이블은 서로 호환되지 않기에 이를 해결하고자 ORM을 사용합니다. ORM은 따로 SQL문을 짤 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있습니다. 장점 객체지향 → 클래스의 메서드를 통해 데이터베이스를 조작 가능하여 오로지 객체 모델에만 집중 가능하고 SQL문과 같이 쓰는 선언문, 할당, 종료같은 부수적인 코드가 줄어들며 객체 모델 코드에 집중하기 때문에 가독성이 높아지고 생산성도 함께 높아집니다. 재사용, 유지보수, 리팩토링 용이 DBMS 종속성 하락 (종류 : mysql, oracle 등) → 객체에만 집중할 수 있기 .. 2023. 3. 15. 이전 1 2 3 4 ··· 7 다음