개발 19

[Spring Boot] 스프링 Initializr를 이용한 프로젝트 생성

요즘 스프링 부트를 통해 서버 개발하는 작업을 하고 있는데요, 글을 통 못써서 조금씩 다시 쓰려고 합니다. 언어는 자바, 종속성 및 빌드 관리는 gradle을 통해 진행을 하였습니다. 주의할 점이 스프링부트 3.0 이상 버전부터는 자바 17부터만 진행하기 때문에 11로 개발하는것이 불가하다는 점 알고있어야 합니다. 스프링 이니셜라이저를 이용하면 초반 종속성 관리를 진행해줍니다. 당연히 이후에 직접 그래들을 통해 종속성을 계속 추가해줄 수 있지만, Lombok이라던가 Spring Boot devTools 같은 자주 사용하는 부분들을 클릭 한번으로 추가해주기 때문에 상당히 간편합니다. 필요한 디펜던시를 선택한 후에, create를 선택하면 새로운 프로젝트가 생성됩니다.

개발/서버 2023.09.21

[Android] 모듈 갖고 오기

프로젝트에 여러개의 모듈을 두고 쓰고 있는 경우 해당 모듈의 클래스 등을 이용하기 위해서는 implementation을 해주어야 한다. 메인으로 사용할 모듈의(여기서는 app 모듈) 빌드에 해당 클래스를 implementation해주도록 하자. dependencies { implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation project..

[Android] 모듈: 코드의 재사용

이 글에서는 모듈에 대해서 다루어보겠습니다. 모듈을 이용하면 얻을 수 있는 장점이 굉장히 많은데요, https://bravenessofdonut.tistory.com/20 [Android] 모듈화로 빌드시간을 줄인다? 개발을 하며 빌드를 하는 시간은 우리를 굉장히 피로하게 하는 경우가 많습니다. 코드가 커지면 커질수록 그런 경향이 많은데요. 그러한 피로가 개발을 하는데 있어 굉장히 많이 일의 능률을 낮 bravenessofdonut.tistory.com 빌드 시간 뿐만 아니라 다양한 측면에서 도움이 많습니다. 코드의 분리, 빌드시간 이외에도 코드의 재사용 측면에서도 도움이 많이 됩니다. 이번 글에서는 코드의 재사용에 대해서 중점적으로 다뤄보겠습니다. 안드로이드 스튜디오의 모듈 유형 중 Library와 A..

[Android] 패키지 구조

이번 글에서는 프로젝트의 패키지 구조에 대해서 생각해보는 시간을 가져보겠습니다. 우리는 안드로이드 개발을 할 때 MVVM 아키텍처를 뼈대로 개발해 나갑니다. 그래서 패키지 구조도 그러한 내용을 고려해야합니다. 그래서 첫번쨰로 생각한 구조는 다음과 같습니다. View - Activity - Fragment - Adapter View Model - View Model Model - Database - Utils 하지만 이렇게 작성을 한다면, 기능별로 구분되어있지 않아서 불편함을 겪게됩니다. 실제로 이런식으로 작성된 코드를 넘겨받아 작업을 진행한 경험이 있었는데요 어떤 코드가 어떤 파일에 작성되어있는지 알 수 없기 때문에 보기 불편할 수 있습니다. 처음 코드를 받아보고, 코드 수정을 하는 입장에서 연관된 코드..

[Server] 웹 서버 개념과 기초

안녕하세요, 이번 글에서는 웹 서버에 대해서 다루어 보겠습니다. 웹 서버는 인터넷을 통해 사용자들이 원하는 정보를 제공하고 서비스를 제공하는 데에 필수적인 기술입니다. 그렇기 때문에 서버에 입문할 때 웹 서버에 대한 이해가 필요합니다. 먼저, 웹 서버의 개념부터 살펴보겠습니다. 웹 서버는 인터넷 상에서 HTTP 프로토콜을 이용하여 클라이언트의 요청에 따라 웹 페이지나 파일 등을 제공하는 컴퓨터 프로그램입니다. 이를 위해서는 웹 서버 소프트웨어가 필요하며, 대표적인 웹 서버 소프트웨어는 Apache, Nginx, IIS 등이 있습니다. 웹 서버를 구축하는 방법은 여러 가지가 있으며, 대표적으로는 LAMP, WAMP, MAMP 등의 스택을 사용하는 방법이 있습니다. 이러한 스택은 리눅스, 윈도우, 맥 OS ..

개발/서버 2023.07.27

[Android] Coroutine(기초)

비동기 처리는 프로그래밍을 하는데 있어서 굉장히 중요한 요소입니다. 우리는 서버 작업등을 할 때 백스레드와 같이 스레드를 하나 더 만들어 비동기 처리를 합니다. 네트워크 통신과 같은 시간이 오래걸리는 작업을 할 때 UI가 멈추면 안되기 때문에 비동기로 네트워크 통신과 앱 동작을 구현합니다. 구글에서는 비동기처리를 함에 있어서 코루틴 사용을 굉장히 중요시합니다. 코루틴은 CO 루틴으로 협동 루틴이라는 뜻입니다. 코루틴의 장점으로는 다음과 같습니다. 메모리 사용량이 적어서 대규모 데이터 처리에도 유용합니다. 스레드와 달리 컨텍스트 스위칭 오버헤드가 적어서 빠른 성능을 보장합니다. 코드 가독성이 좋아서 유지보수가 용이합니다. import kotlinx.coroutines.* fun main() { printl..

[Android] Utility

코드를 작성하다보면 가끔 프로그램 전반에 걸쳐서 사용되거나 자주 필요한 기능, 데이터가 있을 수 있습니다. 그런 기능이나 데이터들을 클래스 또는 함수로 만들면 자주 이용하게 됩니다. 그래서 Util이라는 패키지를 따로 만들어서 관리하기도 합니다. 예를들어 어떤 앱이 있다고 가정하고, 그 앱은 한 페이지가 중심이 되어있고, 항상 버튼 클릭 한번으로 그 페이지로 이동할 수 있어야 한다면 그 페이지로 이동하는 함수나, 그 페이지로 이동하기 위한 함수들을 모아놓은 클래스 등을 Util로 관리 할 수 있습니다. 예를들어 package com.BravenessOfDonut.android.util class GoToThePageUtil { val ThePage = TheActivity() // 항상 이용하는 액티비티..

[Android] Android Weekly

https://androidweekly.net/ Android Weekly - Free weekly Android & Kotlin development newsletter Android Weekly - Free weekly Android & Kotlin development newsletter androidweekly.net 앞으로 도움이 될만한 정보가 많은 것 같습니다.... 구독을 하고 이메일을 적으면 메일로 1주에 한번 최신 안드로이드 뉴스를 보내준다고 합니다. 게다가 무료로... 최신 정보를 아직 활용할만한 실력은 안되지만 계속 최신 뉴스를 따라가며 길을 잡아가는 것도 좋아보입니다. 흥미로운 내용들도 많이 올라오니 한번씩 들어가서 확인해주는 것이 좋을 것 같습니다.

[Android] 모듈화로 빌드시간을 줄인다?

개발을 하며 빌드를 하는 시간은 우리를 굉장히 피로하게 하는 경우가 많습니다. 코드가 커지면 커질수록 그런 경향이 많은데요. 그러한 피로가 개발을 하는데 있어 굉장히 많이 일의 능률을 낮추기 때문에, 빌드시간을 줄이는 것은 생각보다 중요한 경우가 많습니다. 이전에 모듈에 대해서 이야기를 하다가 모듈화가 빌드 시간을 줄여주는데 좋다는 이야기를 들었습니다. 그래서 오늘은 모듈이 빌드 시간을 어떻게 줄여주는지 알아보기로 하였습니다. 우리는 빌드를 할 때 빌드 캐시를 활용합니다. 캐시를 이용해 이전에 사용한 빌드 정보들을 빠르게 캐싱해 처음 빌드를 할 때 보다 더욱 빠르게 빌드를 마칩니다. 개발자가 코드를 고치면 그 코드를 다시 컴파일 해야합니다. 라이브러리가 추가되어 종속성 관리가 다시 필요할 수도 있습니다...