개발 여정/컴퓨터공학 일반
-
프록시 서버 (Proxy Server)개발 여정/컴퓨터공학 일반 2023. 4. 14. 22:04
Proxy Server란? Proxy 뜻: 대리 서버와 클라이언트 사이에서 역할을 대리해서 데이터를 가져오는 서버 응용계층에서 역할 수행 예를 들어 클라이언트인 웹 브라우저에 naver.com을 입력하면, 중간에서 프록시 서버가 네이버 서버의 내용을 가져다 클라이언트에게 전달해줌 프록시의 위치 클라이언트 측과 서버 측 둘 중 하나에서, 내부 사설망과 외부 인터넷망이 접하는 경계에 위치 포워드형 프록시 주로 데이터 수신용으로, 클라이언트 가까운 쪽에 위치 클라이언트는 서버를 알지만 서버는 프록시를 통해서 요청이 오기 때문에 클라이언트를 알지 못함 자주 사용되는 자원을 캐시에 저장해놓기 때문에 서버에 갈 필요없이 프록시 서버 자체에서 처리 가능 리버스형 프록시 주로 데이터 제공용으로, 서버 가까운 쪽에 위..
-
[자료구조] 단방향 연결 리스트 (Singly Linked Lists)개발 여정/컴퓨터공학 일반 2022. 12. 10. 00:36
Singly Linked Lists 단방항 연결 리스트란? 배열처럼 순서에 따라 다수의 데이터를 저장하는 자료구조 시작점인 head와 마지막 점인 tail로 구성됨 다수의 node로 구성되고, 각 node에 value를 저장 각 node들은 next 포인터로 연결되어 있음 각 node들은 다음 node들을 가리키는 정보를 가지고 있어야 하고, 다음 노드가 없을 경우 null을 반환 배열(Array)과의 차이 Search (접근) 배열은 데이터들에 Index가 부여되서 Index만 찾으면 쉽게 접근 가능하지만, 단방향 연결리스트는 첫번째 노드부터 순서대로 나아가 값을 찾아야 한다. (Random Access 불가능) 배열은 엘레베이터가 있는 빌딩과도 같아서 5층을 누르면 5층으로 갈 수 있지만, 단방향 연..
-
[디자인패턴] MVVM 구조란?개발 여정/컴퓨터공학 일반 2022. 9. 22. 16:15
MVVM 모델 1. 구조 Model : 어플리케이션에서 사용되는 데이터 및 그 데이터를 처리하는 부분 View: 사용자에게 보여지는 화면 View Model : View를 처리하기 위해 만든 모델 2. 목적 UI로부터 비즈니스 로직과 프레젠테이션 로직을 분리함 3. 동작 순서 사용자의 Action들이 View를 통해 들어온다. View는 이렇게 들어온 Action을 Command 패턴으로 View Model에 전달한다. View Model은 Model에게 데이터를 요청한다. Model은 View Model에게 요청받은 데이터를 반환한다. View Model은 응답 받은 데이터를 가공하여 저장한다. View는 View Model과 데이터 바인딩을 통해 화면을 나타낸다. 4. 장점 View, View Mod..
-
[Java] 객체지향 프로그래밍이란? (OOP, Object-Oriented Programming)개발 여정/컴퓨터공학 일반 2021. 12. 7. 21:49
객체지향 프로그래밍이란? (OOP, Object-Oriented Programming) 데이터의 묶음인 객체를 유기적으로 처리하는 프로그래밍 방법. 조립식 컴퓨터의 부품을 하나씩 조립하는 것과 같다. 절차지향 프로그래밍(Procedural Programmin)과의 차이점 절차지향 프로그래밍은 물 흐르듯 순차적으로 진행되는 처리방식을 일컫는다. 대표적으로 C언어가 있다. 컴퓨터의 처리구조와 유사해 실행속도가 빠른 장점이 있으나, 실행순서가 정해져 있어 코드의 순서가 바뀌면 동일한 결과를 불러올 보장이 없다는 것이 단점이다. 또한 유지보수 및 디버깅이 어렵다는 단점이 있다. 객체지향프로그래밍의 요소 1. 클래스(Class) 특정 목적을 위해 데이터(필드)와 메소드를 담는 틀 2. 인스턴스 (Instance)..
-
프로그래밍에서 '추상화'란?개발 여정/컴퓨터공학 일반 2021. 12. 1. 21:14
| 추상화 (Abstraction) 현실세계의 복잡한 개념을 컴퓨터 식으로 단순화시키는 것 예시 현실세계 위성사진 -> 지하철 노선도 추상화가 필요한 이유? 우리가 어떤 일을 할 때 그 과정을 일일이 기억하기 보다는 패턴을 외우는 것이 효율적이듯이, 프로그래밍에 있어서도 잘 추상화를 하면 유지보수 및 버그해결에 들이는 시간을 줄일 수 있다. 결국 생산성, 코드의 가독성, 코드의 재상용성을 높이는 것이다. 코드 예시 추상 클래스 - 추상 메소드를 하나라도 포함한 클래스 - 추상 메소드가 있기에 인스턴스를 생성할 수 없음 - 다형성(Polymorphism)을 가지는 메소드의 집합 - 자식 클래스의 바탕이 되는 조상 클래스 - 자식 클래스의 공통사항을 추상 클래스 하나에서 관리할 수 있으니 유지보수가 용이 추..