본문 바로가기

전체 글

(139)
iOS Study : 3주차 - 함수, 제어 구문, 옵셔널 함수 함수선언의 기본 형태 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 { /* 함수 구현부 */ return 반환값 } // 예) // sum이라는 이름을 가지고 // a와 b라는 Int 타입의 매개변수를 가지며 // Int 타입의 값을 반환하는 함수 func sum(a: Int, b: Int) -> Int { return a + b } 변환 값이 없는 함수 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> Void { /* 함수 구현부 */ return } // 예) func printMyName(name: String) -> Void { print(name) } // 반환 값이 없는 경우, 반환 ..
Java Study : 3주차 - 문제 풀이 https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); int y = in.nextInt(); if(x > 0) { if(y > 0) { System.out.println(1); } else { System.out.println(4); } } else { if(y>0) { System.out.println(..
Java Study : 3주차 정리 제어 흐름 이해하기 조건문 주어진 조건에 따라 다른 문장을 선택할 수 있도록 프로그래밍하는 것 조건 연산자로도 구현 가능 if문 if(조건식) { 수행문; //조건식이 참일 경우에 이 문장을 수행 } if ~ else문 if(조건식) { 수행문1; //조건식이 참일 경우 이 문장을 수행 } else { 수행문2; //조건식이 거짓일 경우 이 문장을 수행 } ii~else if~else문 if(조건식1) { 수행문1; //조건식1이 참일 경우 이 문장을 수행 } else if(조건식2){ 수행문2; //조건식2가 참일 경우 이 문장을 수행 } else if(조건식3){ 수행문3; //조건식3이 참일 경우 이 문장을 수행 } else { 수행문4; //위의 조건이 모두 해당하지 않는 경우에 수행 } 수행문5..
Ep15 : flask 인스타그램 클론 코딩 - 댓글 수정, 삭제 기능 구현 댓글 수정 기능 댓글 수정 기능을 구현하기 위한 기본적인 뼈대는 위와 같다. 얼핏 보면 저번에 했던 게시글 수정이랑 크게 다를게 없어 보이지만 인자 부분에 post_id와 comment_id가 게시글 수정때와는 다른다는 것을 알 수있다. 왜 그런지 살펴보자 두 코드는 각각 게시글 수정,삭제 url 경로와 댓글 수정,삭제 url 경로이다. 게시글의 경우 게시글의 id를 찾아서 작성자가 맞는지 인증을 통해서 기능을 수행 했지만, 댓글의 경우 게시글에 댓글을 다는 것이기 때문에 게시글의 아이디와 댓글의 아이디 두개 다 필요하기 때문에 post_id와 comment_id로 구분해 놓은 것이다. 이를 참고해서 코드를 작성하면 아래와 같이 나온다. 게시글과 댓글의 아아디를 찾아서 게시글의 아이디가 같은지와 작성자 ..
CS Study 3주차 : 로드 밸런싱 로드 밸런싱 서버가 처리해야 할 업무 혹은 요청(Load)을 여러 대의 서버로 나누어(Balancing) 처리하는 것 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 기기의 서버가 최적의 퍼포먼스를 보일 수 있도록 하는 것이 목적 기존의 서버와 동일하거나 낮은 성능의 서버를 증설하는 Scale-out 방식에 반드시 필요 → Scale-out 방식을 통해 증가한 트래픽을 여러 대의 서버로 균등하게 분산해 주기 위해서 scale-out : 비슷한 성능의 서버를 여러대 증설하는 것(수평적 확장) 로드 밸런서 종류 로드 밸런서 - 클라이언트와 서버 사이에 위치해, 서버의 부하를 분산시키는 하드웨어 또는 소프트웨어 로드 밸런서는 OSI 7계층을 기준으로 부하를 어떻게 분산할지에 따라 종류가 나뉜다. 주로 ..
CS Study 3주차 : TLS/SSL HandShake TLS(Transport Layer Security) SSL(Secure Sockets Layer)라는 이전의 암호화 프로토콜에서 발전한 것으로 인터넷 상의 커뮤니케이션에서 개인의 정보와 데이터 보안을 위해 설계됭어 널리 채택된 보안 프로토콜이다. 하는일 암호화 : 제3자로부터 전송되는 데이터를 숨긴다 인증 : 정보를 교환하는 당사자가 요청된 당사자임을 보장한다. 무결성 : 데이터가 위조되거나 변조되지 않았는지 확인한다. TLS HandShake TLS 연결은 TLS HandShake를 사용하는데 사용자가 TLS를 사용하는 웹 사이트를 접속하면 클라이언트와 웹 서버간에 TLS HandShake가 시작된다. 클라이언트는 서버의 인증서를 받아 무결성을 확인하고 신뢰할 수 있는 서버라면 암호화 통신에 사용할 ..
Werkzeug의 PathConverter 정규표현식 정규표현식이란 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식이다. 정규표현식 문자들은 아래와 같다. ^ : 문자열의 시작과 매치 $ : 문자열의 마지막과 매치 ^ $ : 사이에 있는 글자가 정확히 들어맞아야 함 . : 아무 글자(띄어쓰기 포함, 줄바꿈은 제외) [] : 대괄호 안에 있는 문자들 중 한글자 [a-z] : a부터 z까지 임의의 글자 | : 또는 * : 최소 0번 이상 반복 ( {0, } 과 동일) + : 최소 1번 이상 반복 ? : 0번 또는 1번 ( {0,1} 과 동일) {n} : n번 반복 Converter Converter를 사용하면 포멧의 변수를 사용하지 않고 편하게 사용할 수 있다. PathConverter 내용을 보면 경로에 사용되는 슬래쉬(/)를 포함하는..
WSGI, Werkzeug WSGI(Web Server Gateway Interface) WSGI란 웹 어플리케이션과 웹 서버간의 통신 규약으로 파이썬 언어로 작성한다. 웹 서버와 웹 어플리케이션 사이에 위치하여 서로 통신이 가능하도록 도와준다. Web Server 웹 서버는 클라이언트에서 요청을 보내면 정적인 컨텐츠(HTML, CSS, image 등)들을 보여준다. 대표적으로는 Apach, Nginx가 있다. Web Application 웹 어플리케이션에서는 웹 서버에서 처리하지 못하는 동적인 컨텐츠들을 처리해서 웹 서버에게 보내준다. 대표적으로는 Django, Flask가 있다. WSGI의 역할 기본적으로 웹 서버는 정적인 페이지 밖에 보여주지 못한다. 그렇기 때문에 웹 어플리케이션의 도움을 통해서 동적인 페이지를 보여줄 수 ..