본문 바로가기

분류 전체보기

(386)
CH2(2.1~2.3). 코틀린 기초 2.1 함수와 변수 - 코틀린 함수의 기본 정의 fun max(a: Int, b: Int): Int{ return if (a>b) a else b } - 식이 본문인 함수: 본문이 중괄호로 둘러싸인 함수를 블록이 본문인 함수라 부르고, 등호와 식으로 이뤄진 함수를 식이 본문이 함수라고 부른다. 코틀린에서는 식이 본문인 함수가 자주 쓰인다. 코틀린에서는 if, when, try 등이 결과를 만드는 식으로서 함수 본문 식에 자주 사용된다. 이 경우 굳이 사용자가 반환타입을 적지 않아도 컴파일러가 함수 본문 식을 분석해서 식의 결과 타입을 함수 반환 타입으로 정해준다.(타입 추론. 식이 본문인 함수의 반환 타입만 생략 가능하다!) - 변수: 코틀린에서는 키워드로 변수 선언을 시작하는 대신 변수 이름 뒤에 타입..
[Django] 인스타그램 클론 코딩 모델 설계 1. 모델 설계 1) User: Django에서 지원하는 AbstractBaseUser를 상속 AbstractBaseUser: password, last_login, is_active 필드 제공. django가 제공해주는 필드를 이용하면서 사용자 정의 field 추가를 위해 사용. (AbstractUser보다 제공 필드가 적어 더 유연성이 있다) login id로 username이 아닌 nickname 사용. (USERNAME_FIELD='nickname'으로 변경. 애초에 username을 nickname 처럼 받아써도 되겠으나 헷갈리지않도록 구분했다.) 공식문서: https://docs.djangoproject.com/en/dev/topics/auth/customizing/#a-full-example..
CH1. 코틀린이란 무엇이며, 왜 필요한가? 코틀린이란? 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 서버 개발, 안드로이드 앱 개발 등의 기존 자바 코드가 사용되었던 분야에 코틀린을 사용할 수 있다. 1. 코틀린 맛보기 data class Person(var name:String, val age: Int? = null) fun main(args: Array) { var persons = listOf(Person("영희"), Person("철수", age=29)) var oldest = persons.maxByOrNull(it.age ?: 0) println("나이가 가장 많은 사람: $oldest") } 결과: 나이가 가장 많은 사람: Person(name=철수, age=29) - name과 age가 들어간 데이터 클래스를 정의..
[Docker] Docker와 Github Actions 이해하기 1. Docker의 개요 - docker란?: 가상 컨테이너 기술. - 컨테이너 기술? 네트워크, 스토리지, 보안 등 각 영역에서의 정책이 모두 다르기 때문에 프로그램들은 환경이 바뀔 때마다 각종 오류가 발생하는 문제에 직면 -> 소프트웨어가 다른 환경으로 이동하더라도 안정적으로 실행되도록 하기 위한 기술이 필요했음. -> 컨테이너 기술 등장 - 컨테이너: 모듈화되고 격리된 컴퓨팅 공간(환경). Host OS 상에 어플리케이션을 구동시키기 위해 필요한 라이브러리, 파일 등을 하나로 패키징 해, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것. - 컨테이너 기술: 리눅스 기반 Host OS를 공유하며, 여러개의 컨테이너들이 격리되어 서로 영향을 미치지 않고 독립적으로 실행하게 하는 기술. - VM과 C..
[Django] Django 앱 작성하기 tutorial (part1~part4) django tutorial 문서(part1~part4)를 보고 정리한 글입니다. Part 1 1. 프로젝트 생성 및 실행 # mysite 프로젝트 생성 $ django-admin startproject mysite # 설문조사 앱(polls) 생성 $ python manage.py startapp polls # 서버 실행 $ python manage.py runserver 간단한 view 작성 후, 이 view를 호출하기 위한 URLconf를 생성 및 작성. 이후 최상위 URLconf(mysite/urls.py)에서 polls.url 모듈을 바라볼 수 있게 설정. -> 서버 실행해서 view 호출 확인. - include() include() 함수는 다른 URLconf들을 참조할 수 있도록 도와준다. ..
[Django] Django 앱 작성하기 tutorial (part1) django tutorial 문서(part1)를 보고 정리한 글입니다. Part 1. 설문조사 앱 프로젝트 만들기 먼저 프로젝트는 파이참 가상환경에 진입해서 실행하였다. 1. 프로젝트를 생성할 디렉토리에서 mysite 디렉토리 생성 $ django-admin startproject mysite 2. 앱 만들기. manage.py가 존재하는 디렉토리에서 설문조사 앱 생성 $ python manage.py startapp polls 3. 첫번째 view를 작성해보자. polls/views.py에 view를 작성할 수 있다. from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at th..
[기출 상] E-Queen - 백트래킹 [문제] nqueen 문제의 변형으로 절대 놓을 수 없는 k개의 위치 정보가 추가로 주어질 때의 queen이 서로 공격할 수 없게 배치할 수 있는 경우의 수가 최대 몇 개인지를 리턴한다. [코드] #include using namespace std; int col[16]; bool xy[14][14] = {false, }; int n, result; bool check(int level) { for (int i = 0; i < level; i++) if (col[i] == col[level] || abs(col[level] - col[i]) == level - i) return false; //col[i]: x좌표, i: y좌표. (x, y)와 (a, b)에 대해서 두 좌표가 대각선에 위치한다면 a-x ..
[Spring] Component와 @ComponentScan @ComponentScan 스프링의 빈 등록 방법에 대해서 얘기할 때 언급되었던 Component와 @ComponentScan에 대해 알아보자. 스프링부트에서는 @SpringBootApplication 애노테이션을 이용해서 빈을 등록하고 관리한다. 따라서 이전 방식이었던 xml 파일이나 java config 파일을 만들어 사용할 필요가 없었다! (사실 이전 방식에 대해 언급하지 않고 넘어갔어서 이 글을 참고하시길...) 그 이유는 @SpringBootApplication에 이미 @ComponentScan과 @Configuration이 있기때문에 이 자체가 Bean 설정 파일이기 때문이다. 이를 자세히 보면, 다음과 같다. @Target(ElementType.TYPE) @Retention(Retention..