1. 개발환경

1) 개발환경 구축

  • 정의: 응용 소프트웨어의 개발 편의성과 성능 향상을 위해 하드웨어 및 소프트웨어 환경을 구축하는 과정
  • 도구의 분류
    • 빌드 도구: 코드 빌드 및 배포 (ex: Ant)
    • 구현 도구: 코드 작성, 디버깅, 수정 (ex: Eclipse, Spring, VS Studio)
    • 테스트 도구: 기능 검증 및 품질 향상 (ex: xUnit)
    • 형상 관리 도구: 코드 및 문서의 버전 관리 (ex: Git)

2) 개발환경 구성요소

(1) 서버 하드웨어

  • 웹 서버(정적) → 클라이언트 요청을 받아 HTML 문서 전송 (ex: Apache)
  • WAS(동적) → 웹 서버와 DB 서버 사이에서 데이터 처리 (ex: Tomcat)
  • DB 서버 → 데이터 저장 및 관리 (ex: MySQL Server)
  • 파일 서버 → 파일 저장 및 전송 (ex: AWS S3)

(2) 클라이언트 하드웨어

  • 클라이언트 프로그램 → 설치형 프로그램 (ex: Visual Basic)
  • 웹 브라우저 → 서버와 웹 통신 (ex: Chrome)
  • 모바일 앱 → 앱스토어에서 다운로드 가능한 앱
  • 모바일 웹 → 모바일 브라우저에서 웹 서비스 제공

(3) 소프트웨어 개발환경

  • 운영체제 (OS) → 하드웨어와 소프트웨어를 연결 (ex: Windows, Linux)
  • 미들웨어 → 다양한 환경에서 실행 가능하게 함 (ex: JVM, Tomcat)
  • DBMS → 데이터 관리 시스템

3) 서버 개발 프레임워크

  • 프레임워크: 재사용 가능한 소프트웨어 개발 틀
    • 특징: 모듈화, 재사용성, 확장성, 제어의 역행

2. 프로그래밍

1) 데이터 타입

  • 정수형: int, long
  • 실수형: float, double
  • 문자형: char, string
  • 논리형: boolean

2) 변수

  • 정의: 데이터를 저장하는 공간
  • 규칙: 숫자로 시작 금지, 공백 금지, 예약어 사용 금지

3) 출력

(1) C언어

#include <stdio.h>
int main() {
    printf("Hello");
    return 0;
}
  • printf() → 출력
  • \n → 개행

(2) Java

class Example {
  public static void main(String[] args) {
    System.out.println("Hello");
  }
}
  • System.out.print() → 개행 없음
  • System.out.println() → 개행 있음
  • System.out.printf() → 포맷 지정 가능

(3) Python

print("Hello")
print("Hello", end="")  # 개행 없음
  • print() → 자동 개행

4) 배열

  • C언어: int arr[5] = {1, 2, 3};
  • Java: int[] arr = {1, 2, 3};

5) 포인터 (C언어)

int a = 10;
int *b = &a;
  • & → 주소 연산자
  • * → 포인터

6) 파이썬 자료형

  • 리스트: [1, 2, 3]
  • 튜플 (수정 불가): (1, 2, 3)
  • 세트 (중복 제거): {1, 2, 3}

3. 운영체제

1) 기본 명령어

  • ls → 현재 디렉토리 파일 목록 확인
  • cat → 파일 내용 출력
  • fork → 새로운 프로세스 생성
  • chmod → 퍼미션 수정
  • uname → 시스템 정보 확인
  • pwd → 현재 경로 확인

2) 프로세스와 스레드

  • 프로세스: 실행 중인 프로그램
  • 스레드: 프로세스 내에서 CPU를 할당받아 실행되는 단위

3) 페이징 기법

  • 페이지 크기가 작아질수록 페이지 개수 증가, 페이지 테이블 크기 증가, 내부 단편화 감소

4. 네트워크

1) 전송 매체 및 MAC

  • CSMA/CD: 충돌 감지 후 재전송 (사용 안 함)
  • CSMA/CA: 충돌 방지 후 전송

2) IP 주소

  • IPv4: 32비트 (20 Octet)
  • IPv6: 128비트 (16진수, 40 Octet)

3) 라우팅 프로토콜

  • IGP (내부 라우팅) → RIP, OSPF
  • EGP (외부 라우팅) → BGP

4) TCP/IP

  • TCP 헤더 크기: 20~60 바이트
  • IP 헤더 크기: IPv4 (20 Octet), IPv6 (40 Octet)

 

+ Recent posts