본문 바로가기
728x90

11/11/12/9/12 55

1과목 소프트웨어 설계

3 소프트웨어 설계 시 요구사항 분석

요구사항 개발 프로세스

도출 → 분석 → 명세 → 확인

5 하향식 설계 방법 vs 상향식 설계 방법

하향식 통합 테스트 (Top Down Integration Test)

  • 깊이 우선 통합법, 넓이 우선 통합법 사용
  • 테스트 초기부터 사용자에게 시스템 구조 보여 줄 수 있다
  • 상위 모듈에는 tc를 사용하기 어렵다
  • 상위 모듈에서 하위 모듈 방향으로 통합면서 테스트하는 기법
  • 절차
    • 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 스텁(stub)으로 대체한다
    • 깊이 우선 or 넓이 우선 등의 통합 방식에 따라 하위 모듈인 스텁들이 한 번에 하나씩 실제 모듈로 교체된다
    • 모듈이 통합될 때마다 테스트 실시
    • 새로운 오류가 발생하지 않음을 보증하기 위해 회귀 테스트 실시

상향식 통합 테스트

  • 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 방법
  • 가장 하위 단계의 모듈부터 통합 및 테스트가 수행되므로 스텁은 필요하지 않다
  • 하나의 주요 제어 모듈과 관련된 종소 모듈의 그룹인 클러스터(cluster)는 필요하다
  • 절차
    • 하위 모듈을 클러스터로 결합
    • 상위 모듈에서 데이터의 입출력을 확인하기 위해 모듈인 드라이버 작성
    • 통합된 클러스터 단위로 테스터
    • 테스트가 완료되면 클러스터는 프로그램 구조의 상위로 이동하여 결합하고, 드라이버는 실제 모듈로 대체

하향식 설계

  • 계층 구조상에서 시스템의 주요 컴포넌트들을 찾고 그것을 낮은 수준의 컴포넌트들로 분해하는 것으로 단계적 정제라 하며 메인 모듈의 설계에서 시작하여 단계적으로 구체화시키는 것
  • 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다
  • 하향식 설계에서는 레벨이 낮은 데이터 구조의 세부 사항은 설계초기 단계에서 필요하다
  • → 시스템 명세가 명확한 경우, 모든 것을 새로 개발하는 작업에 적합

상향식 설계

  • 가장 기본적인 컴포넌트를 먼저 설계한 다음 이것을 사용하는 상위 수준의 컴포넌트를 설계하는 것
  • 상향식 설계는 최하위 수준에서 각각의 모듈을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다
  • 기존 컴포넌트들을 조합하여 시스템을 개발하는 경우에는 상향식이 적합
  • 최하위 수준에서 각각의 모듈들을 상세하게 설계하고 이러한 모듈이 완성되면 전체적으로 이들을 결합하여 설계하는 방식으로 인터페이스가 이미 성립되어 있어야 기능 추가가 쉽다

8 UML(Unified Modeling Language)

객체 지향 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화하는데 사용된다. 즉, 개발하는 시스템을 이해하기 쉬운 형태로 표현하여 분석가, 의뢰인, 설계자가 효율적인 의사소통을 할 수 있게 해준다. 따라서, 개발 방법론이나 개발 프로세스가 아니라 표준화된 모델링 언어이다.

9 UI 설계 도구

목업(MockUp)

  • 디자인, 사용방법 설명, 평가 등을 위해 실제 화면과 유사하게 만든 정적인 형태의 모형
  • 시각적으로만 구성 요소를 배치하는 것으로 일반적으로 실제로 구현되지는 않음

스토리보드(Storyboard)

  • 디자이너와 개발자가 최종적으로 참고하는 작업지침서
  • 상단이나 우측에 제목, 작성자 등을 입력하고 좌측에는 UI 화면, 우측엔 디스크립션을 기입

프로토타입(Prototype)

  • 와이어프레임이나 스토리보드 등에 인터랙션을 적용함으로써 실제 구현된 것처럼 테스트가 가능한 동적인 형태의 모형

유스케이스(UseCase)

  • 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술

11 UML 다이어그램

정적구조

  • 클래스 다이어그램: 객체를 생성하기 위한 도구
  • 객체 다이어그램: 객체 간의 연결관계를 표현
  • 패키지 다이어그램: 객체들의 그룹화된 표현
  • 컴포넌트 다이어그램: 시스템을 구성하는 컴포넌트 사이에 의존관계를 표현
  • → 컴포넌트는 1개 이상의 클래스로 구현됨
  • 복합구조 다이어그램: 컴포넌트나 클래스의 내부 구조를 보여주기 위해 사용, 내부 연결 형태를 표현
  • 배치 다이어그램: HW 자원에 연결된 SW 컴포넌트 배치를 표현

동적구조

  • 유스케이스 다이어그램: 사용자의 시각에서 소프트웨어의 범위와 기능을 표현
  • 상태 다이어그램: 시간에 따라 객체가 변하는 상태를 표현
  • 활동 다이어그램: 객체의 동적행위를 활동으로 표현
  • 시퀀스 다이어그램: 객체간 상호작용을 시간 순서에 따른 메시지로 표현
  • 통신 다이어그램: 객체간 상호작용을 관계형태의 메시지로 표현
  • 상호작용 다이어그램: 객체들의 상호작용 관계를 표현
  • 타이밍 다이어그램: 객체간 상태변화를 구체적인 시간으로 표현

14 GoF(Gangs of Four) 디자인 패턴

생성 패턴

  • 추상 팩토리
  • 빌더
  • 팩토리 메서드
  • 프로토타입
  • 싱글톤

구조패턴

  • 어댑터
  • 브릿지
  • 컴포지트
  • 데코레이터
  • 파사드
  • 플라이웨이트
  • 프록시

행위패턴

  • 책임 연쇄
  • 커맨드
  • 인터프리터
  • 이터레이터
  • 중재자
  • 메멘토
  • 옵서버
  • 상태
  • 전략
  • 템플릿메서드
  • 방문자

15 아키텍처 설계과정

설계 목표 설정 → 시스템 타입 결정 → 아키텍처 패턴 적용 → 서브시스템 구체와 → 검토

18 객체지향 분석기법

Rumbaugh(럼바우) 방법

  • 모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법으로, 객체 모델링 기법(Object Modeling Technique) 이라고도 한다.
  • 분석 활동은 객체모델링 → 동적 모델링 → 기능 모델링 순으로 이루어진다.

Booch(부치) 방법

미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법으로, 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의한다.

Jacobson 방법

Use Case를 강조하여 사용하는 분석 방법

Coad와 Yourdon 방법

E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 정의 등의 과정으로 구성하는 기법

Wirfs-Brock 방법

분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법

************************************19 FEP(Front-End Processor)

입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 차지하는 시간을 줄여주는 프로그램이나 하드웨어

EAI(Enterprise Application Integration)

기업 응용 프로그램 통합으로 기업용 응용 프로그램의 구조적 통합 방안을 가리킴

GPL(General Public License)

자유 소프트웨어 재단(OSF)에서 만든 자유 소프트웨어 라이선스

Duplexing(이중화)

데이터베이스의 회복 기법 중 가장 간단한 것

  • 이중통신(duplex) 또는 쌍방향 통신은 두 지점 사이에서 정보를 주고받는 전자 통신 시스템을 말한다. 이중 통신을 할 때 전송 방향마다 두 개의 통신 신호를 사용하면 단순하지만 전송로를 아끼기 위해 여러 종류의 전송 방식이 쓰인다.

2과목 소프트웨어 개발

22 상향식 테스트에 필요한 것: 테스트 드라이버

테스트 스텁

제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건만을 가지고 있는 테스트용 모듈, 하향식 테스트에 필요

테스트 슈트

테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합

테스트 케이스

사용자의 요구사항을 정확히 준수했는지 확인하기 위한 입력값, 실행조건, 기대결과 등으로 만들어진 테스트 항목의 명세서

25 소프트웨어 프로젝트 관리

  • 프로젝트 관리란 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
  • 소프트웨어 개발 계획을 세우고 분석, 설계, 구현 등의 작업을 통제하는 것으로 소프트웨어 생명 주기의 전 과정에 걸쳐 진행됨
  • 소프트웨어 프로젝트를 성공적으로 수행하기 위해서는 수행할 작업의 범위, 필요한 자원, 수행 업무, 이정표, 비용 추진 일정들을 알아야 함
  • 소요인력은 최소화하는 것이 좋음

→ 프로젝트 관리는 제한된 시간과 비용으로 좋은 품질의 시스템을 개발하여 고객에게 제공

26 정형 기술 검토 (FTR)

  • 제품 검토의 집중성: 오류 검출에 초점을 두고 해결책을 나중으로 미룸
  • 사전 준비성: 검토를 위한 자료를 사전에 배포하여 검토하도록 한다
  • 의견의 제한성: 의견을 제한하되 충분히 받아들인다
  • 안건 고수성: 안건을 세우면 고수한다
  • 논쟁 반박의 제한성: 논쟁과 반박을 제한한다
  • 문제 공개성: 문제 영역을 공개한다
  • 참가 인원의 제한성: 참가자의 수를 제한한다
  • 문서성: 발견된 오류를 문서화한다

27 소프트웨어 재공학 활동

  • Analysis: 기존 소프트웨어를 분석하여 제공할 대상 선정
  • Migration: 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 작업
  • Restructuring: 기존 소프트웨어를 향상시키기 위하여 코드를 재구성하는 작업 (기능과 외적 동작은 변하지 않음)
  • Reverse Engineering: 기존 소프트웨어를 분석하여 소스코드를 얻어내는 작업 (소스코드로 소프트웨어를 만드는 작업의 역작업)

34 NS Chart (Nassi-Schneiderman Chart)

  • 3가지 기본구조만으로 논리를 표현 (표준화 가능)
  • Flow Chart의 최대 단점인 화살표 없음
  • 기본 구조의 입구와 출구는 하나씩
  • 전체적인 알고리즘을 일목요연하게 볼 수 있음

36 비교 알고리즘

Selection Sort

배열 내에서 최소값을 찾은 다음 정렬되지 않은 맨 앞 값과 교환하며 정렬해 나가는 방법

시간복잡도 O(N^2)

Bubble Sort

왼쪽에서부터 두 데이터를 비교해서 앞에 있는 데이터가 뒤에 있는 데이터보다 크면 자리를 바꾸는 정렬 알고리즘

시간복잡도 O(N^2)

Insert Sort

한 개의 값을 추출한 다음 앞쪽으로 비교해서 본인의 자리를 알맞게 찾아가게끔 하는 정렬 방법

정렬 시간 복잡도는 최상일 경우 O(N), 최상일 경우 O(N^2)

병합 정렬

또한 분할 정복에 기반한 알고리즘으로 리스트를 1 이하인 상태까지 절반으로 자른 다음 재귀적으로 합병 정렬을 이용해서 전체적인 리스트를 합병하는 정렬 과정 O(NlogN)

퀵 정렬 Quick Sort

분할 정복 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법

하나의 리스트를 pivot을 기준으로 두 개의 비균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법

37 검사 기법

화이트박스 테스트

기초경로 검사, 제어구조 검사, 조건 검사, 루프 검사, 데이터 흐름 검사

화이트박스 테스트 검증 기준

문장 검증 기준, 분기 검증 기준, 조건 검증 기준, 분기/조건 검증 기준

블랙박스 테스트

동치 분할 검사, 경계값 분석, 원인-효과 검사, 오류 예측 검사, 비교검사

38 ISO/IEC 25000 (소프트웨어 품질 관련 국제 표준)

  • SW 품질 평가 통합 모델
  • SQuaRE로도 불림
  • ISO/IEC 9126, ISO/IEC 12119, ISO/IEC 14598의 3개 표준을 통합한 모델

2500n: 개요 및 품질관리

2501n: 품질모델

2502n: 품질측정

2503n: 품질요구

2504n: 품질평가

2505n: 확장분야

3과목 데이터베이스 구축

41 데이터베이스 설계 - 물리적 설계

  • 어떤 인덱스를 만들 것인지
  • 성능 향상을 위한 개념 스키마의 변경 여부 검토
  • 레코드의 크기
  • 파일과 구조 저장을 위한 최소한의 공간
  • 빈번한 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려사항

→ 응답시간, 저장공간의 효율과, 트랜잭션 처리량

→ 스키마의 평가 및 정제는 논리적 설계에서 실행

43 정규형의 종류

제1정규형 원자화

릴레이션에 속한 모든 속성의 도메인이 원자값으로만 구성되어 있으면 제1정규형

제2정규형 부분함수종속제거

제1정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제2정규형(부분함수 종속제거)

제3정규형 이행함수종속제거

제2정규형에 속하고, 기본키가 아닌 모든 속성이 이행적 함수 종속이 되지 않으면 제3정규형

BCNF(보이스/코드)정규형 결정자함수종속

릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면 보이스/코드 정규형에 속함

제4정규형 다치종속성제거

BCNF 정규형을 만족하면서 함수 종속이 아닌 다치 종속을 제거해야 만족

제5정규형 조인종속성제거

제4정규형을 만족하면서 후보키를 통하지 않는 조인 종속을 제거해야 만족

46 모든 것에 대하여…

∃ 존재한다

50 A → B 이고 B → C 일 때 A → C 인 관계를 제거하는 것은?

이행적 종속을 제거: 2NF → 3NF

54 BETWEEN A AND B

A ≤ X ≤ B 이상, 이하의 의미

58 분산 데이터베이스 시스템

  • 구조: 전역, 분할, 할당, 지역 스키마
  • 분산 처리기, 분산 데이터베이스, 통신 네트워크, 분산 트랜잭션
  • 분산 데이터베이스는 논리적으로는 하나의 시스템에 속하지만 물리적으로는 여러 개의 컴퓨터 사이트에 분산되어 있다
  • 위치 투명성, 중복 투명성, 병행 투명성, 장애 투명성을 목표로 한다
  • 데이터베이스의 설계가 비교적 어렵고 개발 비용과 처리 비용이 증가한다는 단점이 있다

4과목 프로그래밍 언어 활용

61 65 IP 주소체계

IPv4

  • 32비트 주소
  • 유니캐스트/멀티캐스트/브로드캐스트 사용
  • 헤더가 가변적이고 주소 크기는 32bit
  • 호스트 주소를 자동으로 설정하여 유니캐스트(Unicast)를 지원한다
  • 클래스별로 네트워크와 호스트 주소의 길이가 다르다

IPv6

  • 128비트 주소
  • 16비트씩 8부분의 16진수로 표시
  • 기존 IPv4의 주소 부족 문제를 해결하기 위해 개발
  • 인증성/기밀성/무결성 지원 (=보안성 강화)
  • 유니캐스트, 애니캐스트, 멀티캐스트 사용
  • 주소 자동 설정(Auto Configuration) 기능을 통해 손쉽게 이용자의 단말을 네트워크에 접속시킬 수 있다
  • 등급별, 서비스별로 패킷을 구분할 수 있어 품질보장 용이
  • 확장 기능을 통해 보안 기능 제공

68 소프트웨어 모듈간의 결합도(Coupling), 모듈 내 요소간 응집도(Cohesion)

좋은 소프트웨어일수록 결합도는 낮고, 응집도는 높다

  • 결합도: 어떤 모듈이 다른 모듈에 의존하는 정도
  • 응집도: 한 모듈 내부의 처리 요소들이 서로 관련되어 있는 정도 (독립적 기능 수행 정도)

69 알고리즘

데커의 알고리즘 (Dekker Algorithm)

  • 프로세스가 두 개일 때 상호 배제를 보장하는 최초의 알고리즘
  • flag와 turn변수를 사용하여 조정

램퍼드 알고리즘 (Lamport Algorithm)

  • 프로세스 n개의 상호 배제 문제를 해결한 알고리즘
  • 프로세스에게 고유한 번호를 부여하고, 번호를 기준으로 우선순위를 정하여 우선순위가 높은 프로세스가 먼저 임계구역에 진입하도록 구현

피터슨 알고리즘 (Peterson Algorithm)

  • 프로세스가 두 개일 때 상호 배제를 보장, 데커의 알고리즘과 유사하지만 상대방에게 진입 기회를 양보한다는 차이가 있고 보다 더 간단하게 구현됨

세마포어 (Semaphore)

  • 공유된 자원의 데이터 혹은 임계영역 등에 따라 여러 Process 혹은 Thread가 접근하는 것을 막아줌 (동기화 대상이 하나 이상)

71 기억장치 배치 전략: Best Fit

Best Fit: 내부 단편화가 가장 적게 남는 공간에 넣음

First Fit: 들어갈 수 있는 첫 번째 공간에 넣음

Worst Fit: 가장 큰 공간에 넣음

74 개발 환경 구성을 위한 빌드(Build) 도구

Build: 작성된 Source Code를 실제 기기에서 실행할 수 있는 소프트웨어로 변환하기 위한 과정

  • Ant: 아파치 재단에서 개발한 자바의 공식적인 빌드 도구
  • Kerberos: 컴퓨터 네트워크 인증 암호화 프로토콜
  • Maven: 아파치 재단에서 개발, Ant 대안
  • Gradle: Ant, Maven의 보완으로 개발된 빌드 도구 (안드로이드 스튜디오 주 빌드 도구)

********78 a << n

a를 n 비트만큼 왼쪽으로 이동하라는 뜻

80 UNIX 시스템의 쉘(shell)

  • 사용자 명령을 해석하고 커널로 전달하는 기능 제공
  • 반복적인 명령 프로그램을 만드는 프로그래밍 기능 제공
  • 초기화 파일을 이용해 사용자 환경을 설정하는 기능 제공

→ 프로세스, 메모리 관리는 커널의 기능

5과목 정보시스템 구축 관리

82 정보시스템

고가용성 솔루션 (HACMP: High Availability Cluster Multi Processing)

  • AIX를 기반으로 한 IBM의 High Availability Solution
  • Resource의 중복 또는 고유를 통해 Application의 보호를 가능하게 해줌
  • 같은 Data를 공유하거나 동시에 access하는 node들에서 여러 개의 application을 실행하게 해줌
  • 두 대 이상의 시스템을 하나의 Cluster로 묶어 Cluster 내의 한 시스템에서 장애가 발생할 경우 다른 시스템이 장애가 발생한 시스템의 자원을 인수할 수 있도록 하여 서비스의 중단을 최소화할 수 있도록 도와주는 솔루션

점대점 연결 방식 (Point-to-Point Mode)

  • 네트워크에 있어 물리적으로는 중개 장치를 통과하지 않고 한 지점에서 다른 지점으로 직접 가는 채널
  • 두 스테이션간 별도의 회선을 제공하여 1대1로 연결
  • 전용회선이나 공중전화 회선을 이용
  • 회선 구성이 간단하고 대용량 전송에 유리
  • 별도의 회선과 포트에 따른 높은 설치비용

스턱스넷 (Stuxnet)

  • 2010년 6월에 발견된 웜 바이러스
  • 윈도우를 통해 감염, 지맨스 산업의 SW및 장비를 공격

루팅 (Rooting)

  • 모바일 기기에서 구동되는 안드로이드 운영체제상에서 최상위 권한 (루트 권한) 을 얻음으로 해당 기기의 생산자 또는 판매자 측에서 걸어 놓은 제약을 해지하는 행위

84 직접 연결 저장장치 (Direct-attached storage, DAS)

  • 하드디스크와 같은 데이터 저장장치를 호스트버스 어댑터에 직접 연결하는 방식
  • 저장장치와 호스트 기기 사이에 네트워크 디바이스 없이 직접 연결하는 방식으로 굿어

네트워크 결합 스토리지 (Network Attached Storage, NAS)

86 소프트웨어 생명 주기 모델 - V 모델

  • 소프트웨어 개발 프로세스로 폭포수 모델의 확장된 형태 중 하나
  • 아래 방향으로 선형적으로 내려가면서 진행되는 폭포수 모델과 달리, 코딩 단계에서 위쪽으로 꺾여서 알파벳 V자 모양으로 진행

검증 단계 - 요구사항 분석, 시스템 설계, 아키텍처 설계, 모듈 설계

87 블루투스 공격

  • 블루버그: 블루투스 장비 사이의 취약한 연결 관리를 악용한 공격
  • 블루스나프(블루스나핑): 블루투스의 취약점을 활용하여 장비의 파일에 접근하는 공격으로 OPP를 사용하여 정보를 열람
  • 블루재킹: 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 것
  • → OPP (Obex Push Protocol) 블루투스 장치끼리 인증 없이 정보를 간편하게 교환하기 위하여 개
  • 블루프린팅: 블루투스 공격 장치의 검색 활동을 의미

88 Dos (Denial of Service) 공격

  • Ping of Death 공격은 정상 크기보다 큰 ICMP 패킷을 작은 조각(Fragment)으로 쪼개어 공격 대상이 조각화된 패킷을 처리하게 만드는 공격 방법이다
  • Smurf 공격은 브로드캐스트(Broadcast)를 활용하여 공격 대상이 네트워크의 임의의 시스템에 패킷을 보내게 만드는 공격이다
  • SYN Flooding은 존재하지 않는 클라이언트가 서버별로 한정된 접속 가능 공간에 접속한 것처럼 속여 다른 사용자가 서비스를 이용하지 못하게 하는 것이다
  • Land 공격은 패킷 전송 시 출발지 IP주소와 목적지 IP주소 값을 똑같이 만들어서 공격 대상에게 보내는 공격 방법이다

90 92 IT 용어 정리

StackGuard

  • Stack 상에 일정한 주소 번지에 프로그램이 선언한 canary를 심어 두어, 스택이 변조된 경우에 canary를 체크하여 프로그램을 비정상적으로 종료시키는 기법

Docker

  • 컨테이너 응용프로그램의 배포를 자동화하는 오픈소스 엔진
  • SW 컨테이너 안의 응용 프로그램들을 배치시키는 일을 자동화해주는 오픈소스 프로젝트이자 소프트웨어

Cipher Container

  • 자바에서 암호화 복호화 기능을 제공하는 컨테이너

Scytale

  • 암호화 기법으로 단순하게 문자열의 위치를 바꾸는 방법

Li-fi

  • 스펙트럼의 빛을 이욯나 5세대 이동통신 기술

Scrapy

  • 파이썬 기반의 웹크롤러 프레임워크
  • 가볍고 빠르고 확장성이 좋음

SBAS (위성항법보강시스템)

  • GPS의 오차를 보정해 신뢰성과 안정성을 높인 기법

97 리눅스 로그 파일

wtmp

  • 성공한 로그인/로그아웃 정보를 담고 있는 로그파일
  • var/log/wtmp에 위치
  • last 명령어 사용

utmp

  • 현재 로그인 사용자 상태 정보를 담고 있는 로그파일

last log

  • 마지막으로 성공한 로그인 정보를 담고 있는 로그파

 

 

728x90

개발자 호소인