분류 전체보기
[Android] kotlin으로 Fragment에서 Activity로 값 전달하기
Fragment와 Activity의 관계 Fragment의 뜻은 사전적 정의로 '조각'이라는 뜻이다. 그 뜻에 걸맞게 fragment는 activity를 이루는 조각이다. 우리는 모든 화면을 activity로 만들고 Intent로 통신할 수 있다. 그러나 그렇게 한다면, 자원을 불필요하게 많이 사용할 수 있다. 그 이유는 acivity는 stack형식으로 데이터가 쌓이기 때문이다. fragment를 사용한다면 하나의 activity 위에서 여러 개의 화면을 사용할 수 있다. 즉, 화면을 분할시킬 수 있다는 의미이다. 이런 식으로 앱을 만든다면 보다 효율적으로 자원을 사용할 수 있다. Fragment에서 Activity로 값 전달하기 내가 하고 싶었던 것은 아주 간단하다. DialogFragment에 버튼..
[15] 프로그램 설계 방법론 ( 텍스트 및 예외 처리)
파일을 영구 보존하기 위해서는 RAM이 아니라 외부 저장 장치에 저장해야 한다. 텍스트 # String 텍스트는 일종의 문자열이고, 수정불가하다. 즉, immutable하다. String과 Char[]는 다르다. String은 immutable하지만 Char[]은 mutable하다. .equals()의 매개변수에는 Object가 들어가서 어떤 것이든 들어간다. 다른 말로 유연하다. package example; public class example_string { public static void main(String[] args) { String s = "abc"; String t = "abc"; System.out.println(s==t); System.out.println(s.equals(t)); ..
안드로이드 앱 기획을 시작하며 (얼굴 MBTI 테스트)
인공지능으로 얼을 분석하여 외향인지 내향인지 알려주는 프로그램을 개발하고자 한다. 이번 시리즈는 인공지능을 활용하여 사진을 외향인지 내향인지 판단하는 어플리케이션을 기획 및 개발하면서 힘들었던 점이나 발전한 점, 느낀 점 등을 적을 예정이다. 이 블로그에 다음과 같은 글을 쓰는 이유는 생각이 정리됨과 함께, 사람의 기억과는 달리 블로그의 글은 삭제하지 않는 한 영구적으로 존재하기 때문이다. 이제부터 본격적으로 글을 써보도록 하겠다. 프로젝트를 시작하며 이번 프로젝트를 시작하게 된 계기는 한양대학교 에리카에 있는 활동 중 '또래 튜터링'이라는 프로그램에 참여한 것이다. 이 프로젝트를 진행하기 위해 소프트웨어학부 동료 1명과 인공지능학과 동료 1명과 팀을 꾸렸다. 우리는 android와 database, 인..
[기획] #03_게임에서 레벨과 퍼즐을 사용하는 방법
# 레벨 게임을 플레이하는 환경/장소 게임플레이 경험에 기반하여 분할하는 공간의 단위 플레이어가 진행한 정도를 세는 단위 획득한 점수, 경험치 등에 의해 결정된 플레이어의 등급 그 외 다른 용어(라운드, 웨이브, 스테이지, 월드 등) # 각 레벨의 테마 일반적인 테마 : 우주(정거장), 불/얼음, 던전/동굴, 공장, 정글 폐가/공동묘지, 해적선, 도시, 하수구 두 가지 이상의 테마를 섞어 새로운 테마 만들기 # 레벨 이름 기능(1-1, 1-2, ...) 장소(강당, 실험실, 연구소, ...) 설명(물 속의 여로, 이탈, ...) 운율 # 월드맵 하향식 접근을 하려면 세부사항을 정하기 전에 필요 진행상황을 알려 줌 암시 # 목표 설정 탈출/생존 : 행동/장소 탐험 : 이동의 자유/대화 교육 : 관찰/모방 ..
[09] 시스템 프로그래밍 기초 ( 배열 )
String Searching char* strchr(const char *s, int c) char* strcpy(char *dst, const char *src) char* strstr(const char *s1, const char *s2) char* strpbrk(const char *s1, const char *s2 Stirng token 문자열을 자르는 데에 사용된다. 포인터의 장난질이다. pointer가 있는 곳이 시작점, null이 마지막 값이다. 컴퓨터는 int와 같은 native 자료형을 더 빠르게 처리한다. ispunct를 사용하여 \t나 ' '를 걸러낸다. 무한 수를 처리한다는 것은 문자열 타입에서 int로 갔다가 다시 문자열 처리한다. toascii(int c) : 정수를 문자열로..
[02] 아카데믹 글쓰기 - 논증
지난 글쓰기 피드백 단락의 구분이 모호하다. 단락 첫 부분에 띄어쓰기 x 이야기가 이어지는 도중에 줄 바꾸기 비문이 많다 첫 단락에 서론-본론-결론이 다 서술되어 있다 구체적인 사건이나 일화만 서술하고 끝난다(사건/일화는 수단이지 목적이 아님을 잊지 말자) 도입 단락 이후 글이 어떻게 전개될 것인가에 대한 설명 부족 글에서 도입 부분이라는 뉘앙스가 잘 느껴지지 않는다 서술 방식 - 논증 # 논증 아직 명확하지 않는 사실이나 현상에 대해 자기의 견해를 주장하고 적절한 논거를 제시하면서 증명하는 서술 방식이다. 자기의 독자적인 견해에 대해 근거를 밝혀 독자를 설득시키는 것이다. # 명제 어떤 문제와 현상에 대한 글쓴이의 주장이나 견해를 간결하게 문장화한 것 사실 명제 : 사실 가치 명제 : 개인의 생각 정책..
[08] 시스템 프로그래밍 기초 (포인터 심화)
일반 배열과 포인터로 만든 배열의 차이 먼저 스트링 constants는 텍스트 세그먼트에 저장된다. 이 텍스트 세그먼트는 수정 불가하다. 배열은 스택 영역에 복사를 뜬다. 따라서 수정이 가능하다. 그러나 포인터는 스트링 콘스턴트를 텍스트 세그먼트에 둔 채로 텍스트 세그먼트의 주소값만 받아온다. 이것은 즉, 포인터 배열은 수정이 불가하다는 뜻이다. # a[2][3] 배열이 있다면 다음과 같이 나타낼 수 있다. a[0][0] == **a; a[0][1] == *(*a+1); a[0][2] == *(*a+2); a[1][0] == **(a+1); a[1][1] == *(*(a+1)+1); a[1][2] == *(*(a+1)+2); 배열은 고정적으로 메모리를 할당하는 데에 비해 포인터는 그때마다 동적으로 할당한..