오늘.. 2시에 1차 합격이 되었다는 문자를 받았다...😁 정말 간절했던 동아리 소식이여서 행복했다...❣
mash-up, 코테이토 이미 두 개의 연합동아리에서 서류탈락을 맞았던 나로서는 정말 기쁜 일이다. (왜 떨어졌는지는 면접 준비를 한 후 포스팅 할 예정이다)
UMC 자기소개서에도 활동 내용을 담기 위해서 노력했었는데... MARKs 스터디 과정(3~6월) 진행한다고 한다.
나는 여기에서 스터디를 열심히 하여, 개발자로서 성장하고 싶다는 내용을 적극적으로 담았다!
우선 나는 4학년이지만, 스스로 🥔라고 생각하는 사람이기에, 주니어 코스로 지원했다. 주니어 코스는 해당 파트의 기초 지식은 있으나, 개발 경험이 적거나 없는 학생 대상이었고 나는 이제까지 구루1,2 프로젝트를 진행해본 경험이 다였기에 나는 주니어에 적합한다고 생각하였다.
프론트엔드 파트로 지원하였고 나는 안드로이드가 가장 익숙하고 자신이 있어서 이 점을 어필하여 자기소개서에 담았다.
그렇다면, 자기소개서를 한 번 다시금 살펴보자. 면접의 질문을 대비하기 위해서!!
1. 위의 파트를 선택한 이유는 무엇인가요?
-> 간단하게 요약하면, 안드로이드에서 구현할 수 있는 기본적인 구현 기능들을 배우고 익히면서 사용자와 소통하는 안드로이드 개발에 큰 흥미를 느끼고 안드로이드 개발자가 되어야겠다는 다짐을 할 수 있었습니다. 와 앞서 했던 프로젝트에서 하지 못했던 아쉬움 마음을 담아서 지원하게 되었다고 작성하였다.
=> 그렇다면 면접에서는 나에게 '기본적인 구현 기능'에 대해 물어볼 가능성이 있어보인다!
이에 대해 나는 기능들은 모두 내 블로그에 담겨있기에, 내 블로그를 열심히 정독하고 면접에 임해야겠다🔥
2. UMC 지원한 동기가 무엇인가요?
-> 구루2 활동을 하면서 아쉬운 점, 내가 해왔던 과정을 어필하며 개발자로서 다음 프로젝트를 진행한다면 하고 싶은 내용을, 도전 정신을 담았다! 또 UMC 워크북 문제를 해결하면서 공부하고 성장하고 싶다는 점을 담았다
=> 면접에서는 '어떻게 공부하고 성장할지' 또는 '얼마나 공부할 수 있는지'를 물어볼 가능성이 있어보인다!
우선 어떻게 공부하고 성장에 대한 답은, "공부하면서 새로 배운 개념 또는 실습한 프로그램은 블로그에 작성하여 나중에 비슷한 기능을 구현하거나 개념이 헷살린 경우 다시금 참고하여 복습하며 개발 역량을 향상 시키려고 한다"라고 어필할 생각이다.
공부시간에 대해서는, "현재 4학년이기에 다른 학년 대비 UMC 활동을 더욱 집중적으로 할애할 수 있는 상황이다. 졸업프로젝트만 원활하게 만들면 되는 상황이며 현재 월요일 5~6교시, 화요일은 4교시 이후 공강, 목요일 4교시 이후 금요일은 모두 공강이기에 많은 시간 투자가 가능한 상황"임을 어필하고자 한다🔥
3. 어려움을 겪고 극복해낸 과정을 사례와 함께 서술해주세요.
-> 모바일앱프로그래밍 수업을 들으면서 했던 과제를 해결하면서 생긴 오류들을 해결했던 자세에 대해 자세히 담았고, 마지막에 오류를 직면했을 때, 도전하고 분석하여 해결하는 개발자가 되고 싶다고 했다.
=> 면접에서는 오류들...에 대해 묻기에는 내가 너무 자세하게 오류들을 적어놓았다. 나는 manifest(다음 페이지 등록 안함), grandle 오류 총 2가지에 대해 자세히 적었다. 솔직히 매니페스트는 아주 간단한 오류지만, 오류 메세지 없이 avd가 종료되는 것이 힘들었고," grandle은 팀원들끼리 버전" 맞추는 것이 어려웠다...
그렇다면 질문이 들어온다면," API 35버전으로 업데이트로 midSk =35... 등등을 맞추고, 자바 버전을 11로 맞췄습니다. 버전을 살펴보는 사이트는 https://developer.android.com/studio/known-issues?hl=ko 를 참고하여, 종종 오류가 있거나 참고가 필요한 경우 살펴봅니다." 라고 답변해야겠다.
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
android {
namespace = "com.cookandroid.a0224"
compileSdk = 35
defaultConfig {
applicationId = "com.cookandroid.a0224"
minSdk = 35
targetSdk = 35
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
compose = true
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
}
4. UMC 8기를 통해 얻어가고 싶은 것과 기대하는 바를 서술해주세요.
-> 안드로이드 개발자로서 필요한 개념 숙지 복습을 UMC에서 제공하는 자료를 토대로 할 것임을, 또한 여러 프로젝트에 참여하여 도전하겠다는 이야기를 담았다. "프로젝트 참여 시간"에 대해 질문이 들어올 것 같다.
=> "프로젝트는 6~8월에 진행되는데, 저는 현재 학교 근처에 자취를 하고 이번 여름방학에는 아르바이트를 하지 않을 예정이기에 시간적 여유가 많은 상황입니다. 3~6월에 UMC 자료를 토대로 배웠던 내용들을 바탕으로 프로젝트에 열심히 성실히 시간적 투자를 하여 임하겠습니다." 이렇게 답변을 한다면 좋을 것 같다!
5. 본인을 잘 표한할 수 있는 포트폴리오 혹은 진행해봤던 프로젝트 경험 관련 서류를 제출해주세요.
-> 나는 구루 활동에서 있었던 오류들에 대해서 성실히 작성하였다. 주제 선정에 대한 갈등, mysql 연동의 어려움, 프로젝트 내 나의 파트들에 대해 성실히 담았고 이는 블로그에 다 담겨있기에 따로 더 준비는 하지 않아도 될 것 같다.
=> "프로젝트 진행함에 있어 구루 활동을 하면서 협업이 정말 중요함을 느꼈습니다. 서로 하고 싶거나 자신이 있는 분야를 코딩하되, 팀원이 코딩을 하다가 생기는 오류들에 대해서는 저도 같이 구글링, 자료를 찾아보면서 개발자로서 적극적으로 임할 것입니다. 개발함에 있어 소통은 매우 중요하기에 개발일지 작성, 기능 명세서를 성실히 작성하여 팀원끼리 코드에 대한 이해의 혼돈이 오지 않도록 하겠습니다. " 나의 포부정도만 더 작성해보겠다
그렇다면, UMC 합격자들의 면접 질문을 찾아보자💻
- 만일 백엔드, 프론트엔드 중에 하나만 선택한다면?
- 디자인분들로부터 제공받은 시각적인 자료를 바탕으로 사용자의 편의성을 위해 표현 의도를 정리하고, 이를 직접 구현하는것에 큰 흥미를 가지고 있습니다. 해서 프론트엔드에 대해 관심이 많은 상황입니다.그러나 최종적으로 프론트, 백엔드 둘 다 다루는 개발자를 희망하고 있기에, 현재 4학년 때 서버 수업을 수강할 에정이며, 세부적으로 백엔드 지식을 여름방학 때 공부하고자 합니다.
- 팀원들과의 갈등 해결을 어떻게 해결할 것인지?
- 팀원들과 적극적으로 소통하여 갈등을 해결해보자 합니다. 팀 프로젝트를 하면서 갈등이 생겼던 원인은 보통 서로의 오해로 부터 시작된 경우가 많았습니다. 이에 저는 적극적으로 먼저 다가가서 저의 생각을 조심스럽게 말하고 갈등이 생긴 팀원의 이야기를 듣고 사과하고 서로의 오해를 풀기 위해 노력할 것 입니다.
- + 나는 자기소개서에서도 주제 선정에 대한 갈등 내용을 담았기에...만약 프로젝트 진행에 대한 갈등이 생긴다면. 우선 프로젝트 주제 선정에 있어 팀 자체의 갈등이 발생한다면, 우선 저는 구루 프로젝트의 상황처럼 우선 각자의 의견을 모두 이야기해볼 수 있는 시간을 갖자고 제안할 것입니다. 서로의 의견을 이야기하면서, 제가 생각하지 못했던 문제점, 다른 관점에 대해서 다시금 분석할 수 있기 때문입니다. 이후 토의를 통해 주제의 장단점을 다시금 정리하여, 최종적인 팀프로젝트의 목적에 가까운 주제에 맞는지 팀원들과 같이 분석하여 이와 같은 갈등 상황을 해결해보고자 합니다.
- 객체지향에 대한 설명?
- 이건.. 내게는 쉬운 질문이다. 객체 지향은 수업시간에 붕어빵 틀이라고 했지만, 나는 피자라고 생각하겠다. 어떤 프로그램의 필요한 데이터를 추상화시켜(피자로치면, 도우에 소스만 바른거) 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
+ 객체 지향의 장점 : 코드 재사용이 용이(당연히 상속을 통해 확장해서 사용, 또 타인이 만든 클래스 사용)
, 유지 보수 쉬움, 대형 프로젝트에 적합
단점 : 처리 속도 느림, 객체 많으면 용량 커짐, 설계시 노력이 필요..
5대 요소 from clovaX
- 클래스(Class): 객체를 생성하기 위한 설계도입니다. 클래스는 객체의 속성과 메서드를 정의하며, 이를 통해 객체의 행동을 구현합니다.
- 인스턴스(Instance): 클래스를 통해 실제로 생성된 객체를 인스턴스라고 합니다. 인스턴스는 클래스의 속성과 메서드를 가지고 있으며, 실제 프로그램에서 사용됩니다.
- 속성(Attribute): 객체가 가지는 데이터를 속성이라고 합니다. 속성은 객체의 상태를 나타내며, 클래스의 멤버 변수로 정의됩니다.
- 메서드(Method): 객체가 수행할 수 있는 동작을 메서드라고 합니다. 메서드는 객체의 행동을 나타내며, 클래스의 멤버 함수로 정의됩니다.
- 캡슐화(Encapsulation): 객체의 내부 구현을 외부로부터 보호하는 것을 캡슐화라고 합니다. 캡슐화는 객체의 속성과 메서드를 하나로 묶어 보호하며, 외부에서는 객체의 인터페이스만을 이용하여 접근할 수 있도록 합니다.
+ 오버라이딩 : 기존에 정의된 메서드를 수정하는 작업. 오버로딩 : 기존에 정의되지 않은 메서드를 추가하는 작업.
- 자기소개 및 UMC 지원동기?
- 안녕하세요 저는 디자인으로부터 제공받은 시각적인 자료를 바탕으로 사용자의 편의성을 위해 표현 의도를 정리하고 표현하는 것이 큰 흥미를 가지고 있어 프론트엔드 개발자가 되고 싶은 ~~~입니다. UMC에 지원하게 된 동기는 1~3학년 동안 배웠던 전공 수업 내용을 바탕으로 학기 중 UMC에서 스터디를 하여 프론트엔드 개발자로서 더욱 성장하고 싶었습니다. 또한 여름방학 때 진행하는 여러 프로젝트를 참여하여 개발자로서 경험과 실력을 쌓고 싶었기에 UMC에 지원하게 되었습니다.
- 파트 지원의 동기?
- 3학년 모바일 앱 프로그래밍에서 안드로이드 스튜디오를 다루고 배웠습니다. 제가 코딩을 한 내용이 avd에 실행되는 것이 너무 신기하면서 재미있는 경험이었고 이 수업을 바탕으로 안드로이드 개발자를 꿈꾸게 되었습니다. 같은 해에 구루2에서 안드로이드 스튜디오를 이용한 프로젝트를 진행했었고, 무사히 구현하고자 하는 기능을 모두 완성하였습니다. 그러나 티에 벡앤드 개발자의 부재로 서버 기능을 받아서 구현해보지 못한 아쉬움이 남아서, UMC에서 백엔드 개발자와 협업할 수 있는 프론트엔드 개발 파트로 지원하게 되었습니다.
- 나의 장단점?
- 저의 블로그를 보면 아시겠지만, 우선 저는 굉장히 꼼꼼하게 글을 남기는 것을 좋아합니다. 그래서 개발을 할 때, 꼼꼼하게 주석을 남기는 장점이 있습니다. 하지만 이는 역으로 저의 주석이 때로는 너무 길어진다는 단점이 있었고, 현재 다른 개발자들의 주석을 참고하면서 효율적으로 주석을 작성하려고 노력하여 단점을 극복하는 중입니다!
- 협업이 가장 힘든 팀원?
- 연락이 잘 되지 않는 팀원이 가장 협업하기 어려웠습니다. UMC에 활동하면서 그런 팀원 분은 없으시겠지만, 혹여 있다면 저는 더욱 적극적으로 먼저 다가가서 협업이 잘 되기 위해 노력할 것입니다.
- 얻어가고 싶은 것 한 가지?
- 사실 저는 UMC에서 얻어가고 싶은 것이 정말 많습니다. 하지만 그 중에서도 가장 얻어가고 싶은 것은 개발자로서 협업하는 경험을 많이 얻어가고 싶습니다.
- 어떤 개발자가 되고 싶은지?
- 가끔 어플리케이션을 사용하다보면 기능이 너무 복잡하거나 헷갈렸던 경험이 있습니다. 이에 저는 사용자가 쉽게 누구나 직관적으로 이해할 수 있도록 편의성을 가장 먼저 생각하는 프론트엔드 개발자가 되고 싶습니다.
- 궁금한 점?
- 사실 UMC에 붙고 싶어서 블로그나, 인스타그램, 사이트를 찾아가보면서 많은 정보를 얻었습니다. 해서 궁금한 점은 딱히 없습니다!
자신있게 열심히 면접보고 오겠다 🔥 꼭 붙었으면... 좋겠다🎉