문제 및 이론 정리/기타

[용어정리] 확실히 알아두면 좋을 컴퓨팅 용어(-ing)

hail2y 2024. 9. 7. 14:26

API(Application Programming Interface)

  • 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식
  • 중간 전달자로서(like 점원) 양쪽의 서버를 연결

https://blog.naver.com/kistiscienceon/222722915536

open API

  • 개발자라면 누구나 사용할 수 있도록 공개된 API [위키백과]
  • 다양한 서비스와 데이터를 좀 더 쉽게 이용할 수 있도록 공개한 개발자를 위한 인터페이스 [서울 열린데이터광장]
  • API를 제공하는 기업은 자신의 서비스를 널리 알려 인지도를 높이고, 반대로 API를 이용하는 기업은 더 좋은 서비스를 쉽게 사용할 수 있다

HTTP API

REST API(= RESTful API)

서블릿(Servlet)

  • Java를 사용하여 웹을 만들기 위해 필요한 기술
  • 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술
  • Java로 구현된 CGI
  • MVC 패턴에서 Controller로 이용된다
  • 웹서버가 동적인 페이지를 제공할 수 있도록 도와주는 애플리케이션이 서블릿이며, 동적인 페이지를 생성하는 애플리케이션이 CGI

[https://mangkyu.tistory.com/14]

 

CGI(Common Gateway Interface)

  • 서버와 애플리케이션 간에 데이터를 주고받는 방식 
  • 웹 서버와 요청을 받아 처리해 줄 로직을 담고 있는 애플리케이션 프로그램 사이의 인터페이스 
  • 언어, 플랫폼에 독립적
  • 주로 웹 사용자가 form을 작성한 후 웹 서버에게 데이터를 전달할 때 사용된다(POST 방식) 그러면 CGI는 데이터를 받고 가공하여 그 결과를 다시 웹 서버에게 전달하고, 웹 서버는 사용자에게 전달하게 된다
  • In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program to process HTTP or HTTPS user requests. [위키백과]

[https://live-everyday.tistory.com/197]

https://electricalfundablog.com/common-gateway-interface-cgi/
https://electricalfundablog.com/common-gateway-interface-cgi/

리플렉션(Reflection)

  • Java 기능 중 하나로, 런타임에 클래스, 메서드, 필드 등의 정보를 동적으로 확인하고 조작할 수 있는 기술
  • 클래스 이름만 알고 있는 상황, private/protected 필드 등에 사용 가능
  • 프레임워크 개발에 필수적
// 클래스 타입을 가져오는 방법: Class<?>

// 방법 1: 클래스명.class로 클래스 타입 가져오기
Class<?> clazz = String.class;

// 방법 2: 객체의 getClass() 메서드 사용
String str = "Hello";
Class<?> clazz2 = str.getClass();

// 방법 3: Class.forName() 사용
Class<?> clazz3 = Class.forName("java.lang.String");

// 메서드 정보 조회 및 호출

Class<?> clazz = String.class;

// 메서드 정보 가져오기
Method method = clazz.getMethod("substring", int.class, int.class);

// 메서드 호출 (substring 메서드를 호출하여 결과 반환)
String result = (String) method.invoke("Hello, world!", 0, 5);
System.out.println(result);  // 출력: Hello

// 필드 정보 조회 및 수정

class Person {
    private String name = "John";
}

Person person = new Person();
Class<?> clazz = person.getClass();

// private 필드에 접근
Field field = clazz.getDeclaredField("name");
field.setAccessible(true);  // private 필드에 접근 허용

// 필드 값 읽기
String name = (String) field.get(person);
System.out.println(name);  // 출력: John

// 필드 값 수정
field.set(person, "Doe");
System.out.println(field.get(person));  // 출력: Doe

 

AJAX (Asynchronous JavaScript and XML)

  • XMLHttpRequest 기술을 사용해 복잡하고 동적인 웹페이지를 구성하는 프로그래밍 방식
  • 전체 페이지가 다시 로드되지 않고 HTML 페이지 일부 DOM만 업데이트하는, 좀 더 복잡한 웹페이지를 만들 수 있게 한다
  • 웹페이지 일부가 리로드 되는 동안에도 코드가 계속 실행되어 비동기식으로 작업할 수 있다
  • 유연하고 높은 가용성 제공 ex. emails

[https://developer.mozilla.org/ko/docs/Glossary/AJAX]

 

cf. synchronous communication (동기적 통신) vs. asynchronous communication (비동기 통신)

  • Synchronous Messaging involves a client that waits for the server to respond to a message. ... It means that synchronous messaging is a two way communication. i.e. Sender sends a message to receiver and receiver receives this message and gives reply to the sender. Sender will not send another message until it gets a reply from receiver.
    동기적 통신은 메시지에 응답하는 서버를 기다리는 클라이언트와 관련 있다. ... 동기적 통신은 양방향 통신이다. 즉, 송신자가 수신자에게 메시지를 보내고, 송신자가 이 메시지를 받고 송신자에게 다시 답장을 보낸다. 송신자는 수신자에게 답장이 올 때까지 또 다른 메시지를 보내지 않는다. 
  • Asynchronous Messaging involves a client that does not wait for a message from the server. An event is used to trigger a message from a server. So even if the client is down, the messaging will complete successfully. Asynchronous Messaging means that, it is a one way communication and the flow of communication is one way only.
    비동기 통신은 서버로부터의 메시지를 기다리지 않는 클라이언트와 관련 있다. 이벤트는 서버로부터의 메시지로 발생되는데, 비록 클라이언트가 다운되어 있다고 해도, 메시지 보내는 것은 성공적으로 마칠 수 있다. 비동기 통신은, 단방향 통신이며 통신의 흐름은 오직 한 방향이다. 

[https://peoplesofttutorial.com/difference-between-synchronous-and-asynchronous-messaging/#google_vignette]

 

클라우드 서비스

    • 인터넷을 통해 컴퓨팅 자원, 데이터 저장, 소프트웨어, 플랫폼 및 기타 IT 관련 서비스를 원격으로 제공하는 것
    • 필요한 리소스(하드웨어, 소프트웨어, 데이터 저장소 등)을 필요한 만큼 요청하고 제공받는 온디맨드(on-demand) 방식으로 작동
    • 사용자가 필요한 시점에 적절한 양의 자원을 신속하게 할당받거나 반환할 수 있다
    • 사용자는 자원의 유연성과 확장성을 활용하여 비용 절감, IT 인프라를 효율적으로 관리할 수 있다

https://www.samsungsds.com/kr/cloud-glossary/cloud-service.html

[https://www.samsungsds.com/kr/cloud-glossary/cloud-service.html]

 

mockup -- mock 코드