Categories

사실 학교를 다니면서, 학기 회고록을 작성하는것은 이번이 처음인것 같다. 학생신분에서 부끄러운 이야기지만 나는 그렇게 공부를 열심히도, 잘하는 학생도, 동시에 신경도 쓰지 않는 학생이다.(당연히 학점도 처참하다) 단지 정말 프로그래밍에 관심이 많았고, 어렸을때부터 꿈이었기에 현재 학과를 왔고, 대학교를 와서 코딩을 시작하였다. 이런 사람이 학기 회고록을 쓴다니 의아해 하는 사람들이 많을것이다. 이번학기회고록을 작성하는 이유는, 나에게 매우 뜻깊었고, 그 어느 학기보다 가장 힘들면서 열정적으로 살았으며, 나의 다음 출발을 위한 쉼표를 찍는 학기이기 때문이다. 사실 모든 내용을 다루진 않을것이며, 간단한 나의 이야기, 이번학기 중점이 되었던 팀플들과 그와 관련된 과목들의 스토리로 이야기를 조금 해볼까 한다...
· Discord Bot
https://github.com/J-hoplin1/Weather_Hook GitHub - J-hoplin1/Weather_Hook: Weather Web Hook for Discord & Slack Weather Web Hook for Discord & Slack. Contribute to J-hoplin1/Weather_Hook development by creating an account on GitHub. github.com 날씨 관련 API 정하기 다양한 사이트의 API를 살펴보고 사용해보았습니다. 하지만 대부분 사용하기 편하지 않다거나(API Document가 제대로 작성되어있지 않음), 유료인 경우가 많았습니다. API같은 경우에는 결론적으로 https://openweathermap.org/..
SOLID 원칙이란? SOLID 법칙이란, 객체지향 프로그래밍 및 설계의 다섯가지 기본 원칙이다. 시간이 지나도 유지 보수 및 확장이 쉬운 시스템을 만들고자 할때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙에는 총 5가지의 원칙이 있으며, 하나씩 알아보자 1. 단일책임의 원칙(SRP, Single Responsibility Principle) 단일 책임 원칙이란, 하나의 클래스(혹은 객체)는 단 하나의 책임만을 가진다 라는것을 가진 원칙이다. '책임'이 많다라는것은, 곧 변경될 여지가 많다는 것과 동일한 의미이다. 또한 책임을 많이 가질수록, 클래스 내부에서 서로 다른 역할을 수행하는 코드끼리 강하게 결합될 가능성이 높다. 두가지 이상의 기능이 필요한 경우에는, 클래스를 나눠야한다. SRP와 관련..
일반적인 Arrys.sort()를 사용하면, 컴퓨터는 배열에 대해 정렬을 수행한다. 이는 컴퓨터의 내부적인 정렬이 아닌 각 자료형의 래퍼 클래스(Integer, String... etc)들이 Comparable 인터페이스를 구현함으로서 정렬이 가능한 것이다. 정렬 기준을 만드는데 있는 인터페이스에는 Comparable뿐만아니라 Comparator도 있다. 두 인터페이스 모두 객체를 비교한다는 같은 기능을 목적으로 고안된 것이다. 이 두 인터페이스는 Java Collection Framework에 소속되어있다. Comparator Document : https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html C..
· Android
다크모드가 활성화되어있는 상태에서 앱을 실행하면, 색이 반전되어, 테마 색이 망가지는 경우가 있다. 이런 경우 아래 코드를 최초 실행 액티비티의 onCreate()메소드에 아래 코드를 입력해주면 된다.(한번만 입력해줘도됨) AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
· Android
일반적으로 앱들은 하나의 앱으로 되어있지 않고, 여러 페이지로 되어있다. 즉 여러가지 액티비티를 두고, 액티비티를 전환하는 것이다. 액티비티를 추가 하기 위해서 안드로이드 프로젝트 "app" 우클릭 - New - Activity - Empty Activity를 선택하여 새로운 액티비티를 추가해 준다. 액티비티를 이렇게 추가해 주면, AndroidManifest에 새로 추가한 액티비티의 정보가 들어가 있을것이다. 여기서 각자 만들고자 하는 예제에 따라 추가적인 속성을 부여해 준다. 필자같은 경우 , Dialog 테마의 액티비티를 생성해 주었고, 액티비티의 제목에 해당하는 label속성은 Menu Activity로 지정하였다. 태그는 기본적으로, 생성된 액티비티에 대한 정보를 가지고 잇으며, 새로운 액티비티..
· Android
예를 들어서 메인 레이아웃 안에 부분 화면을 띄워본다고 가정하자. 기본적으로 메인 레이아웃은 setContentView()메소드를 사용해서, 인플레이션 과정을 거친다. 그렇다면 부분화면은 어떻게 띄워야할까? 처음에 setContentView()로 부분화면을 객체화할 수 있지 않을까? 생각해 봤지만, 부분화면을 인플레이션하지 못한다고 한다. 이 이유는 setContentView()메소드는 Activity에 보일 View를 지정할 때 사용하는 메소드이기 때문이라고 한다. 부분화면이 메인 액티비티에 띄워지는 과정은 아래 과정과 같다(소스코드 관점) 부분화면 레이아웃 인플레이션 부분화면 레이아웃이 담길 ViewGroup지정 ViewGroup을 메인 레이아웃에 띄운다. 우선 activity_menu.xml, su..
· Android
안드로이드 개발을 할때 코드(Java, Kotlin)파일과 XML Layout파일을 분리시키는것을 알 수 있다. 그리고 소스코드에 setContentView메소드를 이용해 해당 코드와 같이 사용할 전체 레이아웃을 지정하곤 한다. setContentView에 지정할때 R.layout.(확장자 없이 레이아웃 파일 이름만) 과 같이 지정하는데, 여기서 R 클래스는 프로젝트 창의 "res"폴더를 의미하는 클래스이며 각 리소스에 id가 배정되는 클래스이다. 즉, R.layout 이라고 하면 res/layout이라는 의미이다. 다른 예시로 R.id라고 하면, 이 프로젝트 내에 생성된 리소스들 중 특정 id를 지정하는 것을 의미한다. https://developer.android.com/reference/androi..
· Android
Progress Bar은 진행 정도를 표시하거나, 작업이 진행중임을 사용자에게 알려야한다. 안드로이드에는 크게 두가지 모형의 Progress Bar이 존재한다 막대모양 : 작업의 진행 정도를 알려줄 수 있도록 막대 모양으로 표시 원 모양 : 작업이 진행중임을 알려준다. 원모양으로된 프로그레스바가 반복적으로 표시된다. Progress Bar의 XML 태그는 이며,프로그래스 바가 갖는 최대 범위는 max속성으로, 현재 값은 progress속성으로 나타내준다. 현재값인 progress속성은 메소드인 setProgress(int progress)를 통해서 설정해 줄 수 있다. 예제 소스코드를 보자. package com.example.sampleprogress; import androidx.appcompat.a..
· Android
Android에서 간단한 메세지를 보여줄때 Toast도 사용하지만, Snackbar를 사용하는 경우도 있다. Snackbar는 Toast와 달리 화면 하단에 메세지를 띄워서 간단한 피드백을 제공하는 UI이다. 아래와 같이 버튼을 누르면 Snackbar의 간단한 예제를 작성해 보자. package com.example.snackbar; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import com.google.android.material...
· Android
AlertDialog 응용예제가 갑자기 생각났다. 간혹 몇몇 애플리케이션에서 root 액티비티에서 뒤로가기 키를 누르면, "앱을 종료하시겠습니까?" 라는 Dialog창을 띄우는것을 볼 수 있다. 한번 그 코드를 구현해 보려고 한다. 우선 코드는 아래와 같이 작성하였다.(딱히 설정할 레이아웃은 없다) package com.example.sampletoast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent; import an..
· Android
안드로이드 환경을 사용하다 보면 아래와 같이 알림상자를 간혹 볼 수 있다. 이러한 것을 알림 대화상자, AlertDialog라고 부르며, 이는 사용자에게 확인을 받거나 선택하게 할때 사용한다. Edit Text와 같이 사용자와의 상호작용을 위한것이 아닌 일방적인 메세지 전달의 역할이다. 아래 예시와 같이 레이아웃과 MainActivity.java 파일을 작성하자 activity_main.xml MainActivity.java package com.example.sampletoast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInte..
Hoplin
'분류 전체보기' 카테고리의 글 목록