분류 전체보기 (69) 썸네일형 리스트형 코틀린(생성자) 생성자란 무엇인가? 예시를 보며 알면 좋을 것이다. class User1{ var name = "ggg" constructor (name: String){ this.name = name } fun print(){ println("name : $name") } } 코틀린의 생성자는 constructor이라는 키워드로 선언하는 함수이다. class 안에 멤버 변수를 선언하고 생성자로 받은 값을 멤버 변수에 넣어주어 사용하는 것이다. 그럼 생성자란? 역할 객체를 생성할 때 항상 실행되는 것으로, 객체를 초기화해주기 위해 맨 처음 실행되는 메소드를 말한다. 주 생성자란? 주 생성자는 constructor로 클래스 내부에 선언한다. class User constructor(){} 하지만 주 생성자를 생성할 때 c.. 안드로이드 앱 개발의 특징 컴포넌트란 무엇인가? 안드로이드를 개발하다보면 '액티비티 컴포넌트','서비스 컴포넌트' 등 컴포넌트라는 용어가 자주 등장한다. 사실 앱뿐만 아니라 애플리케이션을 개발할 때 사용하는 개념이다. 그럼 컴포넌트란 무엇인가? 애플리케이션의 구성요소를 말한다 컴포넌트는 애플리케이션이 아닌 애플리케이션을 구성하는 단위를 말한다. 그리고 안드로이드에서는 클래스로 컴포넌트를 개발한다. 클래스 == 컴포넌트?? 클래스가 컴포넌트라고 했지만 우리가 아는 클래스는 컴포넌트가 아닐 수도 있다. 물론 클래스는 개발자가 만들지만 크게 컴포넌트 클래스, 일반 클래스로 나눠진다. 그럼 이 두 가지의 차이점을 알아보자 컴포넌트 클래스 개발자가 만든 클래스이긴 한데 생명주기를 안드로이드 시스템에서 관리한다면 컴포넌트 클래스이다. 일반 .. 코틀린(제네릭) 제네릭이란? 제네릭은 타입 정보를 매개변수화하고 싶을 때 유용하게 사용하는 기법을 말한다. 즉 type을 호출할 때 파라미터 값을 넣어주는 것처럼 넣어주는 것이라고 생각하면 될 것 같다. 그럼 우리가 제네릭을 사용해야 하는 이유를 알아보자 content를 Int type으로 반환하는 class class Test1(var content:Int) { fun replace(content:Int) { this.content = content } fun get(): Int{ return content } } content를 String type으로 반환하는 class class Test1(var content:String) { fun replace(content:String) { this.content = co.. terraform(HCL의 count와 for_each) 반복적으로 여러 리소스를 생성함 내가 여러 iam user을 만든다고 가정했을 때 provider "aws" { region = "ap-northeast-2" } resource "aws_iam_user" "user_1"{ name = "user-1" } resource "aws_iam_user" "user_2"{ name = "user-2" } resource "aws_iam_user" "user_3"{ name = "user_3" } output "aws_arns" { value = [ aws_iam_user.user_1.arn, aws_iam_user.user_1.arn, aws_iam_user.user_1.arn, ] } 이런식으로 할 수 있지만 만약 사용자가 많아진다면 생성하기 힘들 것이다 그래.. terraform 의 HCL(variable,arguments,output) VARIABLE 반복되는 작업을 줄이기 위해 중복되는 값은 변수로 선언한다. block type 을 이용한 variable module "vpc" { source = "terraform-aws-modules/vpc/aws" name = "my-vpc" cidr = "10.0.0.0/16" azs = ["eu-west-1a", "eu-west-1b", "eu-west-1c"] private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"] public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"] } vpc를 생성해 준다. 하지만 이 vpc 의 이름을 variable 이라는 block type.. terraform module terraform module이란? 우리가 앞에서 배운 module 은 분명 .tf 확장자를 가진 디렉터를 module 이라고 부르는 것으로 알고 있을 것이다 하지만 이번엔 block type 으로 module을 사용하는 경우이다 module "vpc"{ source = "terraform-aws-modules/vpc/aws" version = "2.278.0" } 이러한 문법으로 구성이 되는데 module 옆에 "VPC" 는 module 의 이름을 말해준다 source 인자는 사용할 module 을 지정하고 version 인자는 module 버전을 지정한다 (terraform 코드 상에서 하나의 블록으로 다른 사람이 작성한 terraform 코드 그룹을 가져와 사용할 수 있다) https://www.t.. terraform HCL 기초 HCL 에 대해서 알아보자 HCL의 구조 resource "aws_vpc" "main" { cidr_block = var.base_cidr_block } "" "" { = } BLOCK TYPE: 말그대로 block type 이고 resource,input,variables 등등 여러 파입들을 사용할 수 있다 (BLOCK TYPE 에 따라서 뒤에 LABEL 이 얼마나 올지 결정되기도 한다) Block Label1: block label 에 위치한 "aws_vpc" "main"은 resource type 으로 provider (쉽게 말해 plugin 을) import 하여 사용할 수 있게 해준다는 것이다. Block Label2: block label + block name이 한 세트가 되어야한다(bloc.. terraform의 기초 테라폼은 하시코프 에서 오픈 소스로 개발중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 인프라스트럭처 도구이다. (IaC는 코드로 인프라스트럭처를 관리한다) 테라품을 사용해 인프라를 관리할 때는 Write(인프라를 어떻게 구축할지 코드를 작성하고),Plan(코드를 검증한다 변경사항이 있거나 삭제 되는 리소스가 있으면 이 plan 과정에서 확인할 수 있다 ),Apply(코드를 수행함) terraform은 HCL 기반으로 하고 있다.(yml과 파일 구조가 비슷하다고 한다.) terraform의 registry 부분은 providers 와 modules로 나뉜다 providers를 사용하면 AWS,GCP,Azure을 관리할 수 있다 즉 프로바이더란 테라폼과 외부 서비스를 연결해주는 기능을 하는 모듈을.. 이전 1 2 3 4 5 ··· 9 다음