본문 바로가기

전체 글218

[2023.01.16 / CNU SW 아카데미] 팀 프로젝트 2차 회의 진행 오늘은 오롯이 팀끼리 모여서 회의하는 첫 번째 시간이었다. 이번 회의의 목적은 '아이디어 fix'다! 저번 회의 때 각자 프로젝트 아이디어를 생각해오기로 했다. API를 활용한 서비스 데이터를 이용한 서비스 유용하거나 / 내가 재밌거나 위의 조건들이 있었다. 지난 회의(13일) 이후에 아이디어와 여러 유용한 자료들을 생각했었다. 9시에 등교한 다음, 내 아이디어를 정리해서 간단하게 ppt로 준비해갔다. Meeting ... 팀원들 모두 성실하게 아이디어를 생각해왔다. 각자 아이디어를 발표한 다음, 생각할 시간을 갖고, 고민해보기로 했다. 결국, 우리 팀의 아이디어는 아이콘으로 만드는 playlist다. 아이콘을 선택하면, 그 무드에 맞게 playlist를 만들어주는 서비스다. 팀원 모두가 스포티파이 AP.. 2023. 1. 16.
[2022.01.15 / CNU SW 아카데미] 팀 프로젝트 CNU SW 아카데미 2기 팀프로젝트 주제 선정 및 팀 미팅 오전 10시, 문현수 박사님의 팀 프로젝트 개요에 대한 강연이 있었다. 자유 프로젝트에 랜덤으로 매칭된 팀이다 보니까 어떻게 진행해야 될 지 막막했었는데 문현수 박사님이 방향성을 제시해주셨다. 간단한 구현을 해라. 완벽한 코드가 아니어도 된다. 팀 간의 의존성이 발생하면 싸운다. 더미 서버, 더미 클라이언트를 만들어서 빠르게 구현을 진행할 수 있게 하자. 팀 주제 정하기 사용자의 니즈(수요)가 있는가? 무엇이 아쉬운가? 순수한 재미로 만든 서비스도 좋다(예시 : color my tree) 매주 매주 조금씩 구현해야 한다. 회의록 작성 회의 목적 정하기 - 반복적인 이야기 제거, 효율적인 진행 날짜, 참여인원, 목적(지난 회의 요약, 오늘 안건).. 2023. 1. 15.
[2023 동계 모각코 2회 회고록] cnu lib 2.0 심화 프로젝트 도서관 API 분석 저번 2 학기 때, 충남대학교 도서관 앱을 개선하는 프로젝트를 했다. ui/ux 적으로 새로 디자인하고, 앱을 만들고, ab test도 하고... 정부화 본부장님과 미팅도 하고, 도서관 관계자와 미팅도 하고... 대회도 나가면서 바쁜 학기를 보냈었다. 이번 방학 때, 프로젝트를 발전시키기로 했다. 대회를 위해 급하게 코드를 짜서 구조적으로 마음에 들지 않았기 때문에 이번에는 설계부터 제대로 해보고 싶었다. 더 발전된 앱을 만들기 위해 열람 좌석 API를 도서관에 요청했는데 오늘 드디어 업체로부터 응답 메일이 왔다. API json 데이터를 보니 너무 많은 데이터가 있었다. 원하는 데이터를 못 찾겠어서 json 파일을 보며 나름대로 분석을 해보는 시간을 가졌다. (결국 해석을 못 해서 .. 2023. 1. 13.
[2023.01.12 / CNU SW 아카데미] JAVA Collection 이야기 프레임워크를 위한 JAVA Collection 이야기 - Collection은 개발할 때, 가장 많이 사용한다. - 여러 데이터의 묶음 - 컬렉션은 추상체이다. - 구상체 ) List -> LinkedList, ArrayList, Vector, Stack - 구상체 ) Set -> HashSet 예제 1) List를 만들어서 요소를 전부 print하자. import java.util.*; import java.util.function.Consumer; class MyCollection { private final List list; public MyCollection(List list){ this.list = list; } public void foreach(Consumer consumer) { for(.. 2023. 1. 12.
[2023.01.11 / CNU SW 아카데미] 프로그래머스 캠퍼스 강의 프레임워크를 위한 JAVA : Interface 이야기 1. Interface의 기능 인터페이스는 구현을 강제하고, 다형성을 제공하고, 결합도를 낮추는(의존성을 역전하는) 효과가 있다. (1) 구현을 강제하는 기능이다. interface는 모든 메소드가 추상 클래스로 구현된 클래스다. interface 안에 구현을 할 수 없다. interface Runnable { // 모든 메소드가 추상클래스로 구현된 클래스 void run(); } public class Main implements Runnable { public static void main(String[] args) { Main m = new Main(); m.run(); Runnable rm = new Main(); m.run(); // run.. 2023. 1. 12.
[2023.01.11 / CNU SW 아카데미] 프로그래머스 라이브 클래스 오전 10시, 수업시간이 되었을 때, 온라인 수업을 위해 줌 주소를 찾으러 이곳저곳을 헤맸었다. 알고보니 이번 수업 장소는 프로그래머스의 라이브 클래스였다. 변수가 무엇인가요? 조건문의 순서만 바꿨을 뿐인데 결과가 달라진다. 객체 행동을 할 수 있고, 기능이 있는 thing 은/는/이/가 + 서술어"문장" 이 성립되면 객체라고 생각하면 편하다. 객체지향 프로그래밍? 절차지향 프로그래밍? 절차 지향으로 자판기를 바라보면, 자판기를 사용하는 행동/행위를 순서대로 먼저 생각한다. -> 자판기에 돈 넣는다. -> 커피를 선택한다. -> 거스름돈 -> 커피를 받는다. -> 마신다. 객체 지향으로 자판기를 바라보면, 각자 class가 하는 일을 먼저 생각한다. * 자판기가 하는 일 - 커피를 만들 수 있다. - 돈.. 2023. 1. 11.
[CNU SW 아카데미 / 파트 3.실전문제] Umm 문자열 2 앞으로 코딩테스트 풀 때, 기억해놔야 하는 것들을 적어둬야겠다. 문제 Umm 문자열이란 알파벳 대문자 U 뒤에 알파벳 소문자 m 이 2개 이상 연속하는 문자열이다. 예시는 아래와 같다. Umm Ummm Ummmm 아래의 문자열은 Umm 문자열이 아니다. U Um mm UmmmU UmmUmm 문자열이 주어지고, 문자열 슬라이스 범위가 주어졌을 때(a 부터 b까지) 해당 문자열이 Umm 문자인지 아닌지 출력하자. 입력 (1) 테스트 케이스 개수 T (2) 문자열 길이 S의 길이 N(1 2023. 1. 10.
[2023.01.10 / CNU SW 아카데미] 프로그래머스 캠퍼스 JAVA OOP 이야기 1. 객체지향 프로그래밍 - JAVA : 객체지향 언어다! - 객체지향 프로그래밍 : 프로그램을 객체로 구성하는 것. - 등장 : 프로그램이 거대화 하면서 등장. - 아이디어 : 어떻게 큰 프로그램을 만들 것인가? 효율적인가? 해결책 : 작게 나눠서 만들고 합쳐 프로그램의 동작을 객체들에게 나눠서 수행. 객체 (개념적인 용어) 기술적인 용어 : class, instance (헷갈리면 안된다.) - 객체는 작은 기능을 수행한다. - 객체와 객체는 서로 협력을 한다. => 일을 잘게 쪼개서 객체에게 위임하고, 서로 협력하게 만드는 것 - 객체를 서로 구분할 필요가 있다. type(형)으로 구분한다. 예시 : String str = "Hello World!"; - 타입 만들기 : cla.. 2023. 1. 10.
[2023.01.10 / CNU SW 아카데미] 리눅스 특강1 Linux는 os다. 연구, 해킹 문제를 풀 때 리눅스를 많이 사용한다. - 오픈 소스, 툴, 높은 재사용성 - os가 스케쥴링 해준다. Linux Directory Hierachy 리눅스의 기본 명령을 배웠다. mkdir : create a new directory cp : copy cd : change to the recently created dir ls : see directory contents mv : rename or move a file/directory rm : delete a file/directory Vi Editor command 기반 파일을 편집한다. 리눅스 쓰면 많이 쓴다. vi 안쓰고 그냥 리눅스 쓸 수도 있다. 영화에서 후드티 입고 주로 하고 있는 것이 이거다. 익숙해지면 편.. 2023. 1. 10.
[2023.01.09 / CNU SW 아카데미] 2주차 시작.. 오전, Coding Test 오늘은 코딩 테스트를 봤다. 당황스러운 문제가 몇 개 있어서 결과가 만족스럽지는 않았다. 오히려 알고리즘 부분보다는 기초 입출력에서 원하는 답이 나오지 않아서 더 시간을 쓴 것 같다. 1. 파이썬 round는 짝수에서는 0.5 반올림이 되지 않는다. 2. heapq를 마음대로 쓸 정도로 익히자. 3. 이분탐색을 잘 해보자. 프레임워크를 위한 JAVA 송치원 1. JAVA 개발환경 - JDK 자바가 실행되기 위해서는 JVM이 필요하다. => 실행환경 : JRE - JRE + 개발툴 => 개발환경 : JDK - jdk 설치 (최소 8 버전 이상을 설치) - path 설정 2. Build Tool 자동으로 빌드해주고 실행해주는 툴이 없을까? => build Tool.. 2023. 1. 9.
[2023.01.06 / CNU SW 아카데미] 한 주가 끝났다. classification K-nearest neighbor 새로운 데이터와 가장 가까운 k개의 데이터를 보고, 클래스에 라벨링하는 방법 데이터값이 비슷하면 같은 클래스일 것이다. 직관적으로 분류 문제를 풀 수 있다. KNN 한계 - k를 얼마로 잡냐에 따라 결과값이 바뀔 수 있다. - 경계값은 분류가 어렵다. Clustering 지도학습, 비지도 학습, 강화학습이 있었다. 차원을 축소하거나 표현하는 것도 비지도 학습의 일종이다. 클러스터링은 비지도 학습의 일종이 되겠다. 비슷한 애들끼리 세 개의 그룹으로 나눠봐라. 답이 없다. 레이블이 없기 때문이다. K-means clustering 데이터 간의 거리를 계산했을 때, 가장 가까운 내부거리를 가지도록 하는 것 Gaussian mixture cluster.. 2023. 1. 6.
[2023 동계 모각코 1회 회고록] 코테 및 모빌리티 기술 트랜드 조사 코린이 길도 한걸음부터! 1회차 목표 프로그래머스 문제 풀기 모빌리티 기술 트랜드 조사하기 프로그래머스 문제 풀기 queue와 stack을 구현하는 프로그래머스 문제를 풀었다. 이런 문제 유형은 자바로만 풀었는데 이번 기회에 파이썬으로 풀었다. 다음에는 deque 자료구조를 이용해서 문제를 풀고 싶다. 다음에는 원형 큐를 구현해보는 문제를 풀었다. 시간복잡도를 줄이기 위해 deque 자료구조를 사용했다. index, isfull 이라는 변수를 조절해서 원형 큐를 표현하려고 했는데 생각보다 어려웠다. 그래서 고민을 많이 하다가 모각코가 끝나버렸다. 좀 더 구글링을 해 보니까 deque의 rotate라는 메소드를 사용해서 index 변수 없이 한번 직관적으로 코딩해봐야겠다. 모빌리티 기술 트랜드 조사 이번 .. 2023. 1. 5.