전체 글
-
4. ABAP 서브루틴, 함수SAP/개념정리 2025. 6. 19. 13:24
ABAP에서 subroutine과 function module은 둘 다 기능별로 모듈화 하고 코드를 재사용하기 위한 구조이다.하지만 둘의 역할과 활용 방식이 다르다.1. Subroutine(서브루틴)- ABAP 프로그램 안에서 FORM ... ENDFORM 구문으로 정의된 내부 프로시저 (Loacal Modularization) 특징같은 프로그램 안에서 재사용하거나 PERFORM ... IN PROGRAM으로 다른 프로그램에서도 호출 가능전역 변수에 의존간단한 로직 처리에 자주 사용구조가 단순해서 빠르게 작성 가능모듈화는 되어 있지만 캡슐화는 약함※ 캡슐화- 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것. 서브루틴 코드 작성 예시PERFORM write_data.FO..
-
3. ABAP 조건문, 반복문SAP/개념정리 2025. 6. 19. 13:23
1. 조건문IF ~ ENDIF 구문IF 조건문. ~~~ELSEIF 조건문. ~~~ELSE. ~~~ENDIF. CASE ~ ENDCASE 구문CASE 변수. WHEN '값1'. ~~~ WHEN '값2'. ~~~ WHEN OTHERS. ~~~ENDCASE. 2. 반복문DO ~ ENDDO 구문DO 3 TIMES.~~~ENDDO.- 순환 횟수를 지정할 수 있는 구문. 회수를 지정하지 않으면 무한 루프를 수행.- 현재 순환 횟수는 시스템 변수 SY-INDEX에 저장된다. WHILE ~ ENDWHILE 구문WHILE 조건문.~~~ENDWHILE.- 조건문이 참이면 반복순환 지속.- 현재 순환 횟수는 시스템 변수 SY-INDEX에 저장된다. LOOP ~ ENDLOOP 구문LOOP AT..
-
2. ABAP SQLSAP/개념정리 2025. 6. 16. 17:23
ABAP 프로그램에서 OPEN SQL과 NATIVE SQL 두 가지를 사용할 수 있다.1. OPEN SQL정의SAP가 자체적으로 정의한 SQL 문법으로, 모든 DBMS에서 동일하게 동작하도록 추상화된 SQL 문이다.특징DB 독립성 유지: SAP 시스템에서 어떤 DB를 사용하든 같은 방식으로 동작합니다.내부 테이블과 호환: ABAP 내부 테이블과 직접 연동됩니다.검증과 최적화: SAP 내부에서 문법 및 실행 계획을 최적화합니다. (ABAP 프로그램을 활성화할 때 자동으로 Syntax Check가 수행된다.)보안: SQL 인젝션 등 위험이 적음.DML 언어만 사용가능하다Local Buffer를 사용할 수 있다수행 결과가 성공하면 시스템 변수 SY-SUBRC = 0을, 성공하지 못하면 그외의 값을 반환한다...
-
1. ABAP 데이터 타입SAP/개념정리 2025. 6. 10. 14:11
이번 글에서는 ABAP 데이터 타입에 대해서 공부한다. 요약하면 변수 선언은 아래와 같이 작성하며,DATA : 변수명1 TYPE 데이터타입, 변수명2 TYPE 데이터타입.사용할 수 있는 데이터 타입에는 기본데이터, 로컬 데이터 타입, 글로벌 데이터 타입으로 3가지가 있다. 로컬 데이터 타입의 경우 사용자가 직접 프로그램 내에 정의하는 것이며 아래와 같이 작성한다.TYPES : 타입명 TYPE 데이터타입. 아래에서 데이터 타입과 변수 선언에 대해서 더 자세히 알아보자.ABAP 기본 문법1. ABAP 프로그램의 한 문장은 마침표 기호(.)로 마무리한다.예시 : WRITE gv_val. 2. 프로그램 기능을 설명하는 주석은 다음 2가지가 존재한다.- * 기호는 한 라인 전체를 주석 처리한다. 예시 :..
-
[세미나][Netty] 네트워크 프로그래밍 3.세미나 2023. 4. 23. 00:25
자바 네트워킹 소켓 라이브러리최초의 자바 API의 소켓 라이브러리는블로킹 함수만 지원한다.한 번에 한 연결만 처리하기 때문에 새로운 클라이언트 소켓마다 새로운 스레드를 할당해야 한다.여러 스레드가 입력이나 출력 데이터가 들어오기를 기다리며 무한정 대기상태로 유지될 수 있어 자원낭비로 이어질 가능성이 높다.각 스레드가 스택 메모리를 할당해야 하는데, 운영체제에 따라 다르지만 스택의 기본 크기는 64KB ~ 1MB까지 차지할 수 있다.JVM이 물리적으로 아주 많은 수의 스레드를 지원할 수 있지만, 동시 접속이 한계에 이르기 훨씬 전부터 컨텍스트 전환에 따른 오버헤드가 심각한 문제가 될 수 있다.이러한 동시성 처리 방식도 클라이언트 수가 적다면 고려해볼 만하지만 10만 이상의 동시 연결을 지원해야 할 때는 처..
-
[세미나][Netty] 네트워크 프로그래밍 2.세미나 2023. 2. 9. 23:56
부트스트랩 ServerBootstrap - 서버 / Bootstrap - 클라이언트 네티가 작동할 때 기본적으로 설정해야 하는 클래스이며, 프로그램이 시작될 때 가장 먼저 수행된다.부트스트랩 클래스에 어플리케이션이 수행할 동작을 설정하고, 프로그램에 대한 각종 설정을 한다. 부트스트랩 설정은 크게 이벤트 루프, 채널의 전송 모드, 채널 파이프라인으로 나뉜다. 이벤트 루프소켓 채널에서 발생한 이벤트를 처리하는 스레드 모델에 대한 구현이 담겨있다.소켓 모드에 따라 이벤트 루프의 구현체가 달라지기도 한다.전송모드블로킹, 논블로킹, epoll로 지정 가능하다.채널 파이프라인소켓 채널로 수신된 데이터를 처리할 핸들러를 지정한다. 부트스트랩의 논리적 구조부트스트랩에서 위와 같은 설정이 가능하다. 사실상 네트워크 애..
-
[세미나][Netty] 네트워크 프로그래밍 1세미나 2023. 1. 25. 22:32
네트워크 프로그래밍 네트워크로 연결된 둘 이상의 컴퓨터 사이에서의 데이터 송수신 프로그램의 작성을 의미한다. 이때 소켓이라는 것을 기반으로 프로그래밍하기 때문에 소켓 프로그래밍이라고도 부른다. 따라서 네트워크 프로그래밍을 할 때는 운영체제에서 소켓이라는 소프트웨어 모튤을 제공해주고 그것을 이용하여 프로그래밍을 한다. 소켓을 이용하면 내부적으로 어떻게 통신하는 지 정확하게 알지 못하더라도 컴퓨터끼리 네트워크 상에서 데이터를 주고 받을 수 있다. 여기서 소켓의 동작 방식이 블로킹과 논블로킹 두 가지 모드로 나뉜다고 하는데 이건 조금 있다가 살펴보도록 하자. Netty는 NIO 기반의 네트워크 프로그래밍이기 때문에 Netty에 대해 살펴보기 전에 NIO가 뭔지 잠깐 보고 가도록 하자. 네티가 나오기 이전에는 ..
-
[Springboot] 티켓팅 사이트 만들기 1백엔드/spring 2023. 1. 7. 16:12
간단한 토이 프로젝트로 티켓팅 사이트를 주제로 잡았고 딱 필요한 페이지만 만들기로 함. 우선 API로 구현할 것이기 때문에 Restful API에 대해서 공부해볼려고 한다. RESTful?? REST?? RESTful API에서 REST는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. REST 란 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. 즉, 어떤 자원에 대한 CRUD 연산을..