본문 바로가기

분류 전체보기

(139)
iOS Study : 10주차 - 오토레이아웃 정리(2) 코드로 오토레이아웃 작업 스토리보드에서 작업할 필요 없이 코드로도 작업이 가능하다. import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let myFirstView = UIView() //코드로 오토레이아웃 설정시 필수 myFirstView.translatesAutoresizingMaskIntoConstraints = false myFirstView.backgroundColor = .systemPink //밑의 코드에서 view는 스토리보드에서 보여지는 최상단의 뷰를 의미한다. //새롭게 추가하는 뷰는 서브뷰를 뜻하고 위애서 설정한 뷰를 넣으면 된다. self.view.a..
Java Study : 9주차 - 백준 문제풀이 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); int[] arr = new int[x]; for(int i=0; i
Java Study : 9주차 정리 - 내부 클래스, 람다식, 스트림 내부 클래스 내부 클래스는 클래스 내부에 선언한 클래스이다. 내부 클래스는 선언하는 위치나 예약어에 따라 크게 네 가지 유형으로 나누어진다. 인스턴스 내부 클래스, 정적 내부 클래스, 지역 내부 클래스는 클래스 내부의 선언하는 변수의 유형과 유사하다. 익명 내부 클래스는 클래스 이름 없이 선언하고 바로 사용이 가능하다. 인스턴스 내부 클래스 인스턴스 변수를 선언할 때와 같은 위치에 선언하며, 외부 클래스 내부에서만 생성하여 사용하는 객체를 선언할 때 쓴다. 인스턴스 내부 클래스는 외부 클래스가 먼저 생성되어야 생성 가능하다. package innerclass; class OutClass { //외부 클래스 private int num = 10; //외부 클래스 private 변수 private stati..
CS Study 8주차 : SQL vs NoSQL 관계형 데이터베이스(SQL) 관계형 데이터베이스는 데이터베이스 유형중 하나이다. 고정된 행과 열로 구성된 테이블에 데이터를 저장한다. 테이블의 구조와 데이터 타입 등을 사전에 정의하고, 테이블에 정의된 내용에 알맞은 형태의 데이터만 삽입 가능하다. 특정한 형식을 지키기 때문에 데이터를 정확히 입력했다면 데이터를 사용할 때 매우 수월하다. 관계형 데이터베이스에서는 테이블 간의 관계를 직관적으로 파악할 수 있다. 관계형 데이터베이스 관리 시스템(RDBMS) MySQL Oracle SQLite MariaDB PostgresSQL 정리 관계형 데이터베이스는 테이블 기반으로 데이터를 저장하고 SQL을 사용하여 데이터를 다룬다. 간단하게 말하면 SQL은 관계형 데이터베이스 전용 프로그래밍 언어인 것이다. 테이블의 ..
CS Study 8주차 : SQL Injection SQL Injection SQL Injection이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위이다. 공격 종류 및 방법 Normal SQL Injection 논리적 에러를 이용한 SQL Injection으로 가장 많이 쓰이고 대중적인 공격 기법이다. 위 사진을 예시로 들면 1번 쿼리문은 로그인 시 많이 사용되는 SQL 구문이다. 해당 구문에 임의의 SQL 구문을 주입을 하게 되면 내용이 바뀌게 된다. 예시에서 주입한 것은 'OR 1=1 -- 로 User 테이블에 있는 모든 정보를 조회하게 됨으로써 가장 먼저 만들어진 계정으로 로그인에 성공하게 되는 것이다. Union based SQL Injection U..
CS Study 8주차 : 교착상태(Dead Lock) 교착상태란? 교착상태는 상호 배제에 의해 나타나는 문제점으로 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미한다. 교착상태 발생 조건 교착상태가 발생하기 위해서는 네가지의 조건이 충족이 되어야 하며, 하나라도 충족되지 않으면 발생하지 않는다. 상호배제(Mutual Exclusion) 한번에 한개의 프로세스만이 공유 자원을 사용할 수 있어야 한다. 점유와 대기(Hold and Wait) 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다. 비선점(Non-preemption) 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 ..
iOS Study : 9주차 - 오토레이아웃 정리(1) 오토 레이아웃 자동으로 레이아웃을 계산하여 그려주는 것 해당 뷰의 x,y의 위치(가로,세로 위치)와 가로,세로의 크기(사이즈)를 앵커를 걸면 자동으로 뷰를 그려줌 아이폰의 기기마다 크기가 다르기 때문에 앵커를 걸면 기기가 바뀌어도 자동으로 위치가 지정됨 Main에서 뷰를 클릭한 후 Option이나 Alt키를 누르면 아래처럼 사이즈가 뜨게 된다. 앵커 거는 법 위에서 앵커를 걸면 아래처럼 선이 생기면서 왼쪽에 앵커를 걸게 되는 것이다. 크기도 위에서 크기 부분에 앵커를 걸면 된다. 위에서 Clear Constraints를 클릭해서 앵커를 전부 없앨 수 있고, Add Missing Constrainsts는 Xcode에서 자동을 빼먹은 앵커를 걸어준다. 위에처럼 가로와 세로의 정중앙에 위치시키는 것도 가능하다..
iOS Study : 8주차 - MVVM 디자인 패턴 MVVM(Model, View, ViewModel) 디자인 패턴 MVVM은 그래픽 사용자 인터페이스(뷰)의 개발을 비즈니스 로직 또는 백-엔드 로직(모델)으로부터 분리시켜서 뷰가 어느 특정한 모델 플랫폼에 종속되지 않도록 해주는 패턴이다. 구성 요소 모델(Model) 데이터, 네트워크 로직, 비즈니스 로직 등을 담으며 데이터를 캡슐화하는 역할을 맡고 있다. View ,ViewModel에 대한 신경은 쓰지 않는다. 데이터를 어떻게 가지고 있을지만 걱정하며, 데이터가 어떻게 보여질 것인지에 대해서는 고려하지 않는다. 뷰(View) 사용자가 화면에서 보는 것들에 대한 구조, 배치, 그리고 외관에 해당하는 내용을 다룬다. Model을 직접 알고 있어서는 안된다. View는 ViewModel로부터 데이터를 가져와..