Software Engineering 28

[Java] 제2장 Java 기본 문법

1. 단원 요약 /**으로 시작하는 주석은 javadoc 문서이다. 소스코드 맨 위에 작성하며, 클래스에 대한 설명을 기술한다. 달러 사인($)도 식별자로 사용할 수 있다. 고정값(상수값)을 "리터럴"이라 부른다. 식별자는 camel case로, 클래스 이름은 pascal case로 표현한다. (camelCase/PascalCase) 상수는 대문자 snake case로 표현한다. (SNAKE_CASE) 특정 자료형 값을 저장하는 변수를 기본형 변수라 한다. (boolean/byte=char/short/int/float/long/double) char 타입은 2바이트로써, '\u0000'부터 '\uffff'까지 표현할 수 있다. 객체가 위치한 주소를 저장하는 변수를 참조현 변수라 한다. 작은 자료형에서 큰..

[Java] 제1장 Java와 객체지향 프로그래밍

1. 단원 요약 특정 클래스의 인스턴스를 객체라 한다. 기존 클래스를 이용하여 새 클래스를 정의하는 것을 상속이라 한다. 기존 클래스는 슈퍼 클래스, 베이스(기반) 클래스, 상위 클래스, 부모 클래스 등으로 부른다. 상속을 통해 정의된 클래스는 서브 클래스, 파생 클래스, 하위 클래스, 자식 클래스 등으로 부른다. 2. 연습문제 요약 Java에는 포인터 관련 문법이 없다. JVM, System Library등을 통틀어 "Java 플랫폼"이라 한다. Java 소스 파일에 public 클래스가 존재하면, 해당 파일의 이름은 그 클래스의 명칭과 동일해야 한다. Java 소스 파일에 다수의 클래스가 존재하면, 컴파일 시 각 클래스에 대응하는 다수의 .class 파일이 생성된다.

JPA(Java Persistence API) 개념 정리

ORM(Object-Relational Mapping) 기술 일반적인 애플리케이션은 RDBMS에 데이터를 저장하고 가져오는 기능을 가집니다. 그런데 자바 객체를 DB에 저장하려면 JDBC를 통해 테이블 속 레코드로 저장해야 하고, 반대로 테이블에 저장된 레코드를 사용하려면 레코드를 읽어와서 다시 자바 객체로 변환하는 코드가 각 객체마다 필요하게 됩니다. 이처럼 RDBMS와 객체지향 코드 간의 설계 원칙이 다르기 때문에, 이 둘을 매핑하여 객체지향 코드를 작성하는 데 집중할 수 있도록 도와주는 ORM 기술이 생겨났습니다. (Wikipedia ORM 참고자료) 예를 들면, Java SE에 포함되어 있는 JDBC(Java DataBase Connectivity) API를 사용해서 아래처럼 작성한 코드를 Str..

Spring Boot 웹 개발: 시작하기 전에 알아 둘 배경지식

Model 1과 Model 2 아키텍처 웹 애플리케이션의 설계 패턴에는 Model 1과 Model 2(=MVC 패턴)이 있습니다. 저는 JSP를 처음 접했을 때 JSP 파일 내에 화면 표시부터 로직, JDBC와 SQL을 전부 때려박아서 간단한 게시판 기능을 만들었던 적이 있습니다. 그 때는 제가 웹 개발에 손을 댈 생각이 없었기 때문에 그대로 과제물로 제출했던 기억이 납니다. 아무튼, Model 1은 JSP에서 비즈니스 로직 부분을 자바 빈 클래스로 분리하여 개발하는 패턴입니다. 이렇게 하면 프레젠테이션 로직은 JSP와 HTML로, 비즈니스 로직은 자바 빈으로 구현하여 코드의 유지보수성과 재사용성이 좋아집니다. 예를 들어서, 현재 시각을 출력하는 자바 빈을 만들고, 그 기능이 필요한 모든 JSP 페이지에..

[Android][Kotlin] SharedPreferences로 key-value pair 저장하기

지난번 로또번호 가져오는 기능이 이어서, 입력한 로또 번호를 로컬 저장소에 저장할 수 있도록 기능을 추가해 보았습니다. DataStore라는 개선된 방식이 있다고 하는데, 저는 일단 간단하게 SharedPreference를 사용해 보았습니다. 메인 레이아웃 파일 ViewHolder 레이아웃 파일 패키지 구조 SharedPreferencesApplication.kt 이 Application을 추가로 등록함으로써 MainActivity뿐만 아니라 프로젝트 패키지 내 다른 곳에서도 사용할 수 있게 했습니다. 따라서 AndroidManifest.xml 내의 태그 안쪽에 android:name="SharedPreferencesApplication" 속성을 추가해 주었습니다. package org.iptime.is..

[Android][Kotlin] RecyclerView로 목록 표시하기

개요 안드로이드 앱에서 목록을 표시할 때 사용하는 RecyclerView라는 뷰에 대해서 나름대로 정리해 보았습니다. RecyclerView는 ListView와 다르게, 화면에 표시되지 않는 View를 재사용해서 더 효율적이라고 합니다. 정리한 내용은 Android Developers 웹사이트의 Android Basics in Kotlin 강의 코스에서 제공되는 "Affirmation"이라는 예제 앱에서 나왔습니다. Android Basics in Kotlin course | Android Developers Learn Android Basics in Kotlin. developer.android.com 완성된 앱을 실행하면 아래처럼 3열 격자 모양의 카드가 배열됩니다. 메인 레이아웃 파일 activit..

[Android][Kotlin] jsoup로 HTML 파싱하기

요즘 그냥 재미로 안드로이드 앱을 만들고 있습니다. 학습 자료는 https://developer.android.com/courses/android-basics-kotlin/course 에서 제공하는 강의를 따라가는 중입니다. Android Studio에서 Kotlin을 사용해 진행됩니다. 친구가 로또 번호가 동행복권 홈페이지에 올라오면 입력했던 번호와 대조해서 결과를 notification으로 알려주는 앱을 만들어 보라 했는데, 일단 그 번호를 가져오는 방법을 정리해 두었습니다. 그래서 안드로이드 service와 notification 사용 방법을 알아야겠구나! 했는데, WorkManager라는 새로운 방식으로 만들어야 한다고 합니다. 추가로, 네트워크에서 웹페이지를 받아올 때 AsyncTask 대신에 ..

오픈소스 라이선스 정리

방송대 경진대회에 출품할 작품을 계획하다 보니 만들고자 하는 프로그램에 필요한 대부분의 기능이(사실 전부) 오픈소스 라이브러리로 제공되고 있습니다. 그래서 이참에 자세히 알아보고자 포스트를 작성하게 되었습니다. 기본적으로 어떤 창작물을 만들면, 최초 창작자가 저작권을 가지도록 저작권법에 명시되어 있습니다. 저작권법에서 소스 코드는 "컴퓨터프로그램저작물"이라는 용어로 지칭되고 있습니다. 여기에 원 저작자가 자신의 창작물을 다른 사람이 사용할 수 있게 허락하거나, 일정 수준까지만 허락할 수 있도록 라이선스를 부여하게 됩니다. 먼저 어떤 라이선스가 많이 쓰이는지 알아보겠습니다. 2020년 조사 자료이고, whitesourcesoftware.com에서 가져왔습니다. 아파치 2.0 - 28% MIT - 26% G..