분류 전체보기
![[Kotlin] 추상 클래스와 인터페이스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdrFfqV%2FbtqGdEbq6qR%2FAAAAAAAAAAAAAAAAAAAAAGctDVIgf4VpTDCE05PB5r6OZq_CNX5OPrM4GSW5--hm%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DR4naQGFE2IiqqmgvD2qWl7vTk7s%253D)
[Kotlin] 추상 클래스와 인터페이스
클래스라는 것을 만들어 두면 이것을 인스턴스화 하여 객체를 생성하고 객체를 통해 클래스의 기능을 이용하게 됩니다. 객체지향 언어(코틀린은 함수형언어)에서 클래스는 객체를 구체화한 것인데 이 구체화 단계가 명확하게 떨어지지 않을 때 추상 클래스를 사용하게 됩니다. 예를 들어 고양이라는 대상이 있으면 고양이를 클래스로 만들어 구체화 할 수 있고, 고래가 있으면 고래라는 클래스를 만들어 구체화할 수 있을 것입니다. 그런데 '동물'이라는 대상이 있으면 얘는 어떻게 클래스로 만들어 구체화할까요? '동물'이라는 대상은 개인지 고양이인지, 고래인지, 두더지인지.. 암튼 특정 류의 동물에 따라 구체화할 수 있는 방법이 달라집니다. 객체 자체가 명확하지 않은 셈인데 이렇게 불분명한 상태를 나타내고자 할 때 이걸 추상 클..
![[Kotlin] 데이터 클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcaWdkL%2FbtqF7uhdAGG%2FAAAAAAAAAAAAAAAAAAAAALwjdb9USFr3id8S08td0hqysPumbN8RPZ5KzALkozDs%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DIOdm6icAaj%252FuABG3%252BwknzUko1Dg%253D)
[Kotlin] 데이터 클래스
데이터 클래스는 특정 데이터를 클래스로 규격화하여 저장하기 위한 용도로 사용되는 클래스를 의미하며 다음과 같은 형식을 가집니다. data class 클래스명 (var/val 이름: 형식...) var는 변수를 val은 상수를 의미하며 뒤에 변수나 상수가 될 이름을 지정합니다. 그리고 : 뒤에 형식을 사용하여 저장할 데이터를 정의하는데 이러한 매개변수 형식은 몇 개든 , (콤마)로 구분하여 정의할 수 있습니다. 다만 데이터 클래스는 위에서 설명드린 크래스와 달리 값을 받고 저장하는 용도로만 사용되기 때문에 클래스의 본체가 별도로 정의되지 않습니다. data class MyCar (val color: String, var speed: Int) var mc = MyCar("Red", 70) Log.d("tes..
![[Kotlin] 클래스(Class)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FU2im9%2FbtqF4UZTPOn%2FAAAAAAAAAAAAAAAAAAAAAG4J9si1BFIz7bGLzd6hbjQjKQXfyZwJdgy9BfwGGjF4%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D7C%252FTOKsvrCCJRLkeT3uO75yhSKs%253D)
[Kotlin] 클래스(Class)
특정 처리를 위해 관련된 변수, 함수 등을 한꺼번에 모아놓은 프로그램의 단위를 클래스(Class)라고 합니다. Aandroid Studio에서 처음 프로젝트를 생성하고 나면 다음과 같은 코드를 볼 수 있는데 이것은 Android Studio가 onCreate라는 함수를 포함하고 있는 MainActivity라는 클래스를 자동 생성한 것입니다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 이제까지 어떠한 출력을 위해 자주 사용했던 Lod.d() ..
![[Kotlin] 함수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbvZJBY%2FbtqF1BNNotZ%2FAAAAAAAAAAAAAAAAAAAAABIX5TJEl-HD3Nq121KpNCAhI4iM9uRZ69iwAMPvCH6T%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DL0Xjk5dwr%252FzWqDxCID3Dev5Hzaw%253D)
[Kotlin] 함수
Android Studio에서 Kotlin으로 프로젝트를 생성하면 대부분 아래와 같은 구조의 코드로 시작합니다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 우리가 주목해야 할 부분은 onCreate입니다. onCreate는 함수이며 MainActivity클래스에 속해 있습니다. 함수라는 것은 프로그램을 구성하는 최소한의 덩어리이며 프로그램을 실행하면서 필요한 처리를 하기 위한 부분이기도 합니다. 참고로 onCreate는 Android가 시작..
![[Kotlin] 배열과 컬렉션](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc4QG1v%2FbtqFONuyvjr%2FAAAAAAAAAAAAAAAAAAAAADLHM9PizMk8YZiFqAXw_e1lcAuVDzEuvqzZycxm47Ii%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DGwhP9PU141TGFq2c9xU8eGttfuY%253D)
[Kotlin] 배열과 컬렉션
1. 배열 배열은 다음과 같이 선언합니다. var ints = IntArray(10) 예제는 Int형 배열을 10개 할당하라는 의미입니다. Long이나 Double과 같이 다른 타입의 배열을 지정하고자 한다면 해당 타입 + Array형태로 배열을 선언하면 됩니다. var doubles = DoubleArray(10) 다면 문자열에 대한 배열을 선언하려면 다음과 같이 해야 합니다. var s = Array(10, {item -> ""}) 배열의 크기는 배열 변수 선언 시 지정할 수 있으며 향후 배열의 크기를 변경하는 것은 불가능합니다. 이제까지 예제는 미리 배열의 크기만 확보하는 방법이었는데 반면 다음과 같이 배열을 선언하는 방법도 있습니다. var ints = arrayOf(10, 20, 30) //또는..
![[Kotlin] 반복문](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fclm14m%2FbtqFWYoQOWu%2FAAAAAAAAAAAAAAAAAAAAAIlum8HhAsKsmJVsAQSFxdUKnmWhsSSB32gVt5pHic0E%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DlPRFXkr1yZ9e4iouQG0LfZ2jqeQ%253D)
[Kotlin] 반복문
반복문은 말 그대로 특정 처리를 반복하기 위해 사용되는 구문입니다. (1) for for는 다음과 같이 사용할 수 있습니다. for(i in 1..10) { Log.d("test", "${i}") } i는 변 수명이며 '1..10'에서 1은 시작 값, 10은 종료 값을 의미합니다. 따라서 i를 1부터 10까지 저장하며 순회(반복)하도록 합니다. 이때 변수명 i는 임의로 바꿀 수 있으며 for에서의 사용을 위해 외부에서 미리 선언될 필요는 없습니다. for(i in 1 until 10) { Log.d("test", "${i}") } .. 대신 until을 사용하면 종료 값의 -1까지만 반복합니다. -1 까지만 반복한다는 특성을 배열을 가지고 설명드리자면 배열의 시작 값은 0이고 이것을 for를 통해 반복하..

무차별 대입 공격 도구 (Brute Force Attack Tool) - Ban_REMOTE_MSSQL
해당 글은 아래링크로 이동되었습니다. [Server/Windows Server] - 무차별 대입 공격 방어 도구 (Brute Force Attack Depend Tool) - Ban_Server 따라서 아래 글은 더이상 유효하지 않음을 알려드립니다. ----------------------------------------------------------------------------------------------------------------------------------------------------------------- 원격 데스크톱의 경우 원격 포트는 3389, MS-SQL Server의 경우 1433이 기본 포트입니다. 그런데 서버를 외부에서 접속 가능하도록 두면 이 2개 포트에 대해서..
[ASP.NET Core] 리눅스(CentOS 7) 설치및 구동
1. CentOS 준비 - Hyper-V에 설치 - ssh 및 기본적인 네트워크 설정을 마침 (테스트에 사용된 CentOS의 IP는 192.168.0.10으로 맞춰둠) 2. CentOS에 FTP설정 FTP와 ASP.NET Core와는 아무런 관련이 없습니다. 다만 ASP.NET Core프로젝트 파일을 위에서 만들어둔 CentOS 쪽으로 넘겨주기 위해서 FTP를 미리 설정해 둡니다. 아래 설정은 root가 FTP에 접근이 가능하며 최상위 루트 디렉터리를 포함한 모든 디렉터리에 접근할 수 있도록 하는 것입니다. FTP를 설치합니다. - yum -y install vsftpd FTP를 설정합니다. anonymous_enable=NOchroot_local_user=YESchroot_list_enable=YESc..