Computer Science

0.개요웹 서버와 웹 애플리케이션 서버의 차이에 대해서는 어느정도 알고있다.웹 서버는 클라이언트로부터 HTTP 요청을 받으면 서버에 저장된 정적 자원을 반환하는 역할을 주로 하고, 웹 어플리케이션 서버는 사용자의 요청에 따라 서버 단에서 코드를 실행하고 DB와 통신하는 주로 서버라고 말하는 파트이다. 오늘은 단순히 이런정의 말고 내가 만들었던 프로젝트 코드를 통해 웹서버의 실제 용도 조금 깊게 알아보고자 한다. 1. 웹서버 (webserver)1-1. 웹서버 종류자주쓰이는 웹서버로는 다음 2가지 정도가 있을거같다.일단 전통적으로 사용하던 Process/Thread 기반구조를 사용하는 Apache HTTP Server가 있고, 지금 최근에 가장 많이 쓰이는 웹서버인 Nginx가 있다. 특히 Ngin..
0. 개요 API 버전관리졸업작품을 만들면서 API의 구조를 손봐야할일이 생겼다. 그런데 지금 이 구조를 바로 바꿔버리면 클라이언트쪽에서 오류가 발생할것이기때문에 하위호완성으로 기존 API는 남겨두고 나중에 지울목적으로 두고 V2,V3이런식으로 확장해나갔었다. 이런 API 버전관리에 대해 알아 보기위해 글을 작성한다. 2. API 버전관리 방법API 버전 관리는 하위 호환성을 유지하면서 API를 개선해 나가는 과정이다.새로운 기능을 출시하거나 기존 기능을 수정할 때, 기존 API를 사용 중인 클라이언트가 오류 없이 작동하도록 하기 위함이다. 2-1.URI 경로 (Path Variable) 방식내가 위에서 사용한 방법이다. 가장 직관적이고 많이 쓰이는 방식이라고 한다.사실 다른 API 서비스들에서도 이..
1. Oracle DataBase 설치다음 링크에서Oracle Database 21c Express Edition을 설치해준다.https://www.oracle.com/kr/database/technologies/xe-downloads.html Oracle Database Express Edition (XE) Downloads | Oracle 대한민국Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancem..
1.GroovyJava와 완전히 호환되는 동적 프로그래밍 언어다.JVM에서 실행되며, Java의 문법을 확장하여 더 간결하고 유연하게 코드를 작성할 수 있도록 도와준다.(Java 클래스로 컴파일됨) 2.Groovy 특징2-1.동적 타입동적 타입 언어로 타입명시가 필요없음def name = "Groovy"println(name) 2-2. 세미클론 생략세미콜론을 생략할 수 있음def sum(a, b) { return a + b} 2-3.스크립팅 언어로 사용 가능복잡한 설정 없이 스크립트로 바로 실행가능함(Java 프로젝트에서 설정 스크립트나 간단한 프로토타입 작성 시 유용)
1.미들웨어 (Middleware)소프트웨어 개발에서 클라이언트와 서버 사이에서 중간 역할을 수행하는 소프트웨어 계층을 의미미들웨어는 애플리케이션과 시스템 간의 원활한 데이터 흐름을 보장하는 필수적인 구성 요소로 API 기반 시스템에서 인증, 로깅, 로드 밸런싱 등의 기능을 수행한다.    2.미들웨어 종류2-1. 웹 서버 미들웨어(WS)클라이언트로부터 HTTP 요청을 받아 애플리케이션 서버로 전달해준다.   2-2.애플리케이션 서버 미들웨어(WAS)클라이언트 요청을 받아 비즈니스 로직을 처리하고 데이터베이스와 연동하고 웹 애플리케이션 실행 환경을 제공한다.    2-3.데이터베이스 미들웨어데이터 요청을 최적화하여 전달하고 애플리케이션과 데이터베이스사이의 연결을 관리한다.   2-4.메시지 큐 미들웨어비..
1.URI 스킴(URI Scheme)특정 프로토콜을 정의하는 방식으로, 웹 브라우저나 앱이 특정 리소스 찾고 접근할 수 있도록한다.URI의 요소의 일부이다. URI에서 http, https와 같은 부분이 프로토콜로 URI 스킴이다. ://?#    2.딥링크(Deeplink)딥링크는 사용자가 특정 앱의 특정 화면으로 바로 이동할 수 있도록 해주는 링크이다.URI Scheme을 활용하여 구현한다. URI Scheme값을 앱에 등록하여 웹에서 클릭하여 앱의 페이지로 연결한다.하지만 이런 기본적인 딥링크는 앱이 설치되어 있을 때만 동작하고 앱이 없으면 아무런 동작도 하지않는다.myapp://product/123   3.유니버설 링크(Universal Link)IOS에서 딥링크의 문제를 해결하기 위한 기능으로 ..
1.리버스 엔지니어링 (Reverse Engineering)리버스 엔지니어링은 이미 존재하는 제품, 시스템, 소프트웨어, 하드웨어 등을 분석하여 그 구조와 동작 원리를 파악하고 복원하는 과정을 말한다. 주로 기존 제품의 내부 동작을 이해하거나, 오류를 수정하거나, 보안 취약점을 찾기 위해 사용한다.      2.클론 코딩 (Clone Coding)다른 사람의 애플리케이션이나 서비스를 본따서 똑같은 기능을 구현하는 과정을 말한다.주로 학습 목적이나 아이디어의 구현을 위해 사용한다.      3.리버스 엔지니어링 vs 클론 코딩리버스 엔지니어링은 기존 시스템을 분석하고 이해하는 데 초점을 맞추며, 원본의 동작 방식을 파악하고 그것을 기반으로 새로운 정보나 개선점을 도출하는 데 사용하고 , 클론 코딩은 이미 ..
1.코드베이스(Codebase)소프트웨어 개발에서 사용하는 전체 소스 코드 파일들의 집합을 의미(소스 코드,라이브러리 및 종속성,설정 파일,테스트 코드,문서화 )
박종범_
'Computer Science' 카테고리의 글 목록