교내활동(52)
-
Android layout 기초 (3)
레이아웃 종류 TableLayout 위젯을 표 형태로 배치할 때 주로 사용 TableRow 속성과 함께 사용함 행의 수는 TableRow의 수, 열의 수는 TableRow 안에 포함된 위젯의 수 속성 layout_span: 테이블 레이아웃 안에 포함된 위젯에 설정하는 속성으로 열을 합쳐서 표시하라는 의미 layout_column: 테이블 레이아웃 안에 포함된 위젯에 설정하는 속성으로 지정된 열에 현재 위젯 표시 stretchColumns: TableLayout 자체에 설정하는 속성으로 지정된 열의 너비를 늘리라는 의미, stretchColumns="*"는 각 셀을 모두 같은 크기로 확장하여 전체 화면이 꽉 차도록 함, 열 번호는 0번부터 시작함 GridLayout 격자 내부의 셀에 자식뷰를 배치하는 뷰 ..
2023.01.02 -
Android layout 기초 (2)
Layout 종류 LinearLayout 위젯을 가로 또는 세로 한줄로 배치하기 위한 레이아웃 orientation의 horizontal, vertical 중 하나로 설정해주면 기존에 배치되어있던 위젯들도 방향을 바꿀 수 있음 androidx.constraintlayout.widget.ConstraintLayout을 LinearLayout으로 변경하여 사용 한 화면에서 위젯을 수평, 수직 모두 이용해 매치하는 경우 바깥의 큰 LinearLayout 안에 작은 LinearLayout을 여러개 넣어서 사용해야 함 주요 속성 orientation: 레이아웃 안에 배치할 위젯을 수직으로 할지, 수평으로 할지 설정함 옵션: vertical, horizontal gravity: 레이아웃 안에 배치할 위젯의 정렬 방..
2023.01.02 -
Android layout 기초 (1)
View View 클래스의 서브클래스로 만든 객체 액티비피 화면은 한개 이상의 뷰로 구성 크게 두 종류로 나눔 레이아웃 다른 위젯을 담아 배치하는 틀 여러개의 뷰를 규칙대로 화면에 배치 ViewGroup의 서브클래스 위젯 버튼, 라디오버튼, 이미지 등 화면에서 사용되는 것 View 또는 ViewGroup의 서브클래스로서 단독으로 사용 View 클래스의 XML 속성 id 속성 모든 위젯의 아이디를 나타냄 터치했을 때 어떤 동작이 필요한 경우 아이디 부여 일반적으로 id속성은 위젯에 아이디를 새로 부여하는 개념 @+id/ / 다음에는 새로 지정할 id를 넣음 android:id="@+id/button1" -> 버튼 위젯의 아이디로 button1을 부여 kotlin 코드에서 버튼 등의 위젯에 접근할 때 id ..
2023.01.02 -
Kotlin 기초 (4)
추가적인 문법 패키지 클래스와 인터페이스가 많아지면 관리하기 어려워 패키지단위로 묶어서 관리함 package 패키지명 // 자바 프로젝트처럼 디렉토리와 매치되어야 하지는 않음 package com.example.edu class Person(val name: String, val age: Int) 패키지를 지정하지 않으면 이름이 없는 기본(default) 패키지 포함 import 이름이 충돌하면 as 키워드를 이용해 로컬에서 사용할 이름을 변경하여 사용 import com.example.edu.Person import com.example.edu.Person as User import는 클래스 뿐만 아니라 다른 것도 불러올 수 있음 최상위 레벨 함수와 property, object 선언의 함수와 prop..
2023.01.01 -
Kotlin 기초 (3)
클래스 변수(필드)와 메소드로 구성 객체지향 관점에서의 클래스 실 세계의 객체들이 가질 수 있는 상태와 행동을 담음 정적 필드(static field) instance를 생성하지 않고 class 자체에서 사용되면 변수 companion object{} 안에 작성하여 정적 필드를 만듬 정적 메소드(static method) 메소드 또한 companion object{} 안에 작성 instance를 생성하지 않고도 className.methodName()으로 호출하여 사용 가능 상수 필드 정적필드에 초깃값을 입력하고 const val로 선언 선언 후 값을 변경할 수 없음 상수필드는 대문자로 구성하는 것이 일반적임 클래스 안에 상수를 정의할 때 사용 클래스의 상속 기존의 클래스가 가지고 있는 것을 그대로 물려..
2023.01.01 -
Kotlin 기초 (2)
함수 코틀린은 다중 패러다임 언어로 함수형 프로그래밍과 객체지향 프로그래밍이 가능함 함수형 프로그래밍을 하는 이유는 코드를 간략하게 할 수 있으며, 테스트나 재사용성이 증가함 순수 함수, 람다식, 고차함수를 사용해서 구성함 fun sum(a: Int, b: Int) { return a + b } // 간략한 버전 fun sum(a: Int, b: Int): Int = a + b fun sum(a: Int, b: Int) = a + b pure function (순수함수) 부작용이 없는 함수 동일한 입력 파라미터에 대해서는 항상 같은 결과를 출력하거나 반환함 값이 예측이 가능해 결정적임(deterministic) 순수함수의 조건 같은 인자에 대해 항상 같은 값을 반환함 함수 외부의 어떤 상태도 바꾸지 않음..
2023.01.01 -
Kotlin 기초 (1)
특징 자바와 100% 상호호완이 가능하여 자바의 코드를 대체할 수 있음 자바보다 문법이 단순함 프로그램 안정성 good var 또는 val 예약어를 통해 데이터 형식을 선언하지 않고 변수를 선언할 수 있음 변수선언 암시적 선언 변수의 데이터 형식을 지정하지 않고, 대입되는 값에 따라 자동으로 변수의 데이터 형식이 지정됨 초기화 하지 않는 경우에는 데이터 형식을 반드시 명시해야 함 var var1 = 10 var var2 = 10.1f var var3 = 10.2 var(variable) 일반 변수를 선언할 때 사용 필요할 때마다 다른 값을 대입할 수 있음 val(value) 변수 선언과 동시에 값을 대입하거나, 초기화 없이 선언한 후 한번만 값 대입 가능 한번 값을 대입하고 나면 값을 변경할 수 없음 v..
2023.01.01 -
[22-여] 데이터사이언스학과 전공 기부단
이번 여름방학에는 학교에서 진행하는 전공기부단 활동에 참여했다. 내가 간 학교는 순서대로 서울의 정의여고, 이천의 양정여고, 태안의 태안여고 이렇게 세 곳을 갔다. 일단 우리과에서 한 것은 자연어 처리와 시각화를 간단하게 실습하는 시간을 가졌고, 전공체험을 하는 시간이 길지 않다보니 우리가 코드를 제공하기로 하였다. 그리고 응용프로그램 설치 없이 웹상에서 쉽게 돌려볼 수 있도록 코랩을 이용하기로 결정했다. 처음에 코드를 작성할 때 PC카톡의 txt 파일과 Mobile 카톡의 txt 파일이 형태가 같은 줄 알았는데... 정의여고에서 전공체험을 진행하다가 이 둘이 형태가 다름을 알게 되었다... 우린 PC 기준으로 코드짰는데... 그래서 실습을 제대로 진행하지 못하고, 거의 보기만 하고 끝났다.. 미안하다 ..
2022.12.28 -
캡스톤 디자인I 1차 발표
1학년때의 캡스톤1 솔직히 1학년 치고는 잘한 것 아닐까 싶다 ㄴ응 아니에요 배운게 없는데... 구글링하고.. 교수님이 알려주신 툴 사용법과 야매... 정말 와우 그자체 2학기 정말 대단한 학기였던 것 같다. 캡스톤 디자인 프로젝트를 진행할 때의 1차발표 자료이다. 발표할 때 사용했던 것은 아니며 2학기가 끝나고 개인적으로 다시 정리한 것이다. 1차 발표를 할 당시에는 '영화 개봉 전 유튜브 마케팅의 관객 반응 분석을 통해 영화 흥행 예측하기: 영화 극한직업, 기생충을 중점적으로' 라는 주제로 프로젝트를 진행하려고 했다. 주제 선정이유, 영화 선정이유와 가설 순으로 발표했다. (사실 앞으로의 계획도 포함이였으나 이 글에서는 생략한다.) 선행연구를 찾아보며 대부분의 연구들이 '개봉 후'에 초점을 맞췄고, ..
2022.01.07 -
미니프로젝트: 범죄 관련 주제로
소학회 미니프로젝트로 범죄 관련 주제를 선정해서 진행했다. 캡스톤 프로젝트도 진행하면서 소학회 프로젝트까지 진행하는데 좀 버거움이 있었다. 하지만 끝내고 나니 개운하고 캡스톤과는 다른 뿌듯함이 있었다. 노원구를 전체적으로 살펴보려고 했으나, 시간상 무리일 것 같아 학교가 속한 공릉동으로 한정지었다. 나름 역할분담을 해서 진행했다. 하지만 거의 같이했다고 해도 무방할 것 같다. 도보 순찰과 차량순찰의 경우 범죄율을 낮추는데 큰 차이는 없었으나, 주민들과 소통하며 도보 순찰을 도는 경우 범죄율을 낮추는데 효과적이였다고 한다. 또한 일상생활 이론에 따르면 동기가 부여된 가해자, 적합한 피해자, 보호의 부재가 한 장소에서 합치될 때 범죄가 발생한다고 한다. 이를 통해 보호의 부재가 있는 장소들 중 CCTV가 부..
2021.12.28