[노트정리] 2주차

Useful·2024년 3월 17일
0

대학_정리

목록 보기
2/2

1. 웹 서버 프로그래밍 (JSP)


JSP 언어?

  • 태그를 이용하여 고유한 문법을 기술하는 스크립트 방식의 언어

웹 구조

  • 클라이언트 브라우저가 자료를 요청(request)
  • 서버 웹서버는 요청에 응답(response)

웹 서버

  • HTTP 프로토콜을 사용하여 클라이언트 요청에 응답을 하는 프로그램(?)

JSP 컨테이너

  • JSP 프로그램은 하나의 서블릿 프로그램으로 변환

  • JSP 파일(hello.jsp)자바 코드(hello_jsp.java)결과 페이지(hello.html)


JSP 서블릿 클래스의 주요 메소드

  • _jspInit(), _jspService(), _jspDestory() 3가지





2. 파이썬 프로그래밍


2주차_파이썬 프로그래밍.hwp로 저장해서 생략

# print() 함수
print('첫번째 문장')

a = "hello"
b = "world!"
print(a+b)	# 결과 : helloworld

print('파이썬' + 3 * '방가')	# 결과 : 파이썬 방가방가방가

a = 10
b = 12.34656

print(type(a))	# 결과 : <class 'int'>
print(type(b))	# 결과 : <class 'float'>

# 연산자
# +, -, *, /, //(몫), %(나머지), *(제곱근)
a = 10
b = 5
print(a/b)  # 2.0
print(a//b) # 2
print(a%b)  # 0
print(a**3) # 1000

# 형변환
intNum = int(input("정수 입력 : "))
fltNum = float(input("실수 입력 : "))

print(eval("3+2*5")) 	# 결과 : 13

'''
  식별자(identifiers)
  - 변수, 함수와 클래스 이름 등 프로그래머가 이름을 짓는 단어
  - 식별자를 구성하는 문자
  - 영문자(한글도 가능) 와 숫자 그리고 _를 사용
  - 문자는 대소문자의 영문자(a, b, c, A, B …, 숫자(0, 1, 2, …)
    그리고 대소문자는 구별, 한글도 가능
  - 숫자는 맨 앞에 올 수 없다. 그러므로 영문자로 시작
  - import, True, False 등과 같은 키워드(예약어)는 사용 불가
'''

# input() : 키보드로부터 입력받는 명령어
# ,(콤마) : 나열 연산자
# "{0}{1}".format(변수1, 변수2) : 출력형식 장식하는 명령어

a = input()
b = input()

result = int(a) * int(b)
# 콤마를 사용한 출력
print(a, "*", "b", "=", result)
# format을 사용한 출력 (유사 printf)
print("{0} * {1} = {2}".format(a, b, result))





3. 스마트 앱 프로그래밍


1. 앱 개발 과정

  • 프로젝트 생성 → 리소스 및 화면 레이아웃 편집 → 액티비티 및 클래스 코드 작성 → 실행 및 결과 확인 → 배포

2. 앱 개발 환경

  • JDK(Java Development Kit)
    • Java에 기초하여 앱 제작
  • 안드로이드 SDK
    • 앱을 개발하기 위해 필요한 클래스 파일들을 포함하는 개발 키트

3. 안드로이드 앱 실행 원리

  • ART (Android Run Time)

4. 앱 실행

  • 가상 기기에서 실행
    • AVD(Android Virtual Device)
    • 에뮬레이터(Emulator) 라고 함

앱 화면 구조 및 에뮬레이터

5. 최소 지원 API 설정

  • 프로젝트 생성 후 최소 지원 API 레벨 변경가능.
    • bulid.gradle에서 수정 후 sync 실행


3-1. XML


  • 구성
    • 선언부분엘리먼트들의 집합으로 구성
<?xmlversion=“1.0”encoding=“utf-8”?> 
	<!-- 엘리먼트 -->
	<students>
    	<student sid=“201801114”> 
        	<name>이승기</name>
            <phone>010-9999-1111</phone>
        </student>
        
        <student sid=“201801114”> 
        	<name>이승기</name>
            <phone>010-9999-1111</phone>
        </student>
    </students>
    <!-- 엘리먼트 -->
  • 선언 부분
    • xml : xml 문서임을 나타냄
    • version 속성 : xml version을 나타냄
    • encoding 속성 : 인코딩 방법이 utf-8임을 나타냄
  • 엘리먼트
    • root element와 하나 이상의 child element, sub child element등으로 구성
    • <root_element>
      	<child_element id="1">
        		데이터입니다. 믿어주셈
        		<sub_child_element/>
        	</child_element>
      </root_element>
  • XML 예제 : 학생정보 표현
<?xml version="1.0" encoding="utf-8"?>
<students>
	<student sid="20232675">
    	<name>김ㅇㅇ</name>
        <phone>010-1234-5678</phone>
    </student>
    <student sid="20234421">
    	<name>나ㅇㅇ</name>
        <phone>010-4321-1234</phone>
    </student>
</students>


3-2 코틀린 문법


  • 코틀린은 자바와 100% 호환
  • var 또는 val 예약어를 통해 변수 선언
  • 코틀린 소스 👉 자바 바이트코드 👉 JVM
  • 코틀린 소스 파일에는 main() 함수가 있어야 함
	fun main() {
    	var var1 : Int = 10
        var var2 : Float = 10.1f
        var var3 : Double = 10.2
        var var4 : Char = '안'
        var var5 : String = "안드로이드"
        
        print(var1)
           ....
    }
  • Kotlin의 변수 선언 방식
// 암시적 선언
// - 변수의 데이터 형식을 지정하지 않아도 
//   대입되는 값에 따라 자동으로 데이터 형식이 저장된다.
var var1 = 10
var var = 10.2
var var = '안'

var myVar : Int = 100
myVar = 200 	// 정상

val myVar : Int = 100
myVar = 200 	// 오류,  val은 const같은거임 상수임
  • Kotlin의 초기화 미루기
    • lateinit 키워드는 이후에 초기값을 할당할 것임을 선언하는 거임
    • lateinitvar 키워드로 선언한 변수에만 사용 가능
    • Int, Long, Short, Double, Float, Boolean, Byte 타입에는 사용불가
	lateinit var data1 : Int    // ⚠️
    lateinit val data2 : Int    // ⚠️
    lateinit var data3 : String // ✅
  • 데이터 형식 변환
    • toInt()toDouble, toString 등의 정적 메소드 사용 (더 있음)
    • 캐스팅 연산자 as : classA as classB
  • null 사용
    • Kotlin은 기본적으로 변수에 null 값을 넣지 못함
    • 변수를 선언할 때 데이터 형식 뒤에 ? 를 붙여야 null 대입 가능
    • 변수가 null 값이 아니라고 표시해야 되는 경우에는 !!로 나타낸다
	var notNull : Int = null  // 오류
    var okNull : Int? = null  // 성공
    var ary = ArrayList<Int>(1)
    ary!!.add(100)  		  // 값 100을 추가(null 안댐)
  • 문자열 템플릿
    • 자바스크립트처럼 $ 기호를 이용
	val name: String = "김ㅇㅇ"
    val num1: Int = 10
    val num2: Int = 20
    val result: Int = num1 * num2
    
    println("name : $name, sum:$result")
    // 결과 : name : 김ㅇㅇ, sum:30





4. 데이터베이스 응용


데이터, 정보, 지식

  • 데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값
  • 정보 : 데이터에 의미를 부여한 것
  • 지식 : 사물이나 현상에 대한 이해

데이터베이스

조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것


데이터베이스의 개념
1. 통합된 데이터(integrated data)
2. 저장된 데이터(stored data)
3. 운영 데이터(operational data)
4. 공용 데이터(shared data)


데이터베이스의 특징
1. 실시간 접근성
2. 계속적인 변화
3. 동시 공유
4. 내용에 따른 참조


파일 시스템

  • 데이터베이스 시스템 이전에 이런게 있었다 정도로만 알아둠

데이터베이스 시스템

  • DBMS를 도입하여 데이터를 통합 관리하는 시스템
  • DBMS가 설치되어 데이터를 가진 쪽을 서버(Server) 외부에서 데이터 요청하는 쪽을 클라이언트(Client) 라고 한다
  • DBMS 서버가 파일을 다루며, 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
  • 데이터의 중복을 줄이고, 데이터를 표준화하며 무결성을 유지

그 외... 웹 데이터베이스 시스템, 분산 데이터베이스 시스템이 있음.


**데이터베이스 시스템의 구성


SQL

  • 데이터 정의어(DDL, Data Definition Language)
  • 데이터 조작어(DML, Data Manipulation Language)
  • 데이터 제어어(DCL, Data Control Language)

데이터베이스 사용자

  • 일반 사용자
    • 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근하는 일반인
  • 응용프로그래머
    • 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람
  • SQL 사용자
    • SQL을 사용하여 업무를 처리하는 IT 부서의 담당자
    • 응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리
  • 데이터베이스 관리자(DBA, Database Administrator)
    • 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람
    • 데이터 설계, 구현, 유지보수의 전 과정을 담당

DBMS의 기능

내용이 너무 많아서 데이터베이스는 따로 잘라서 올려야함.....

profile
1 commit = 1 life

0개의 댓글