목록분류 전체보기 (66)
Learn to share,Share to learn

개발자라면 언제나 잘 만든 구조에 대해 고민하게된다. 그럼 이때 말하는 잘만든 구조는 무엇을 말할까?다양한 대답이 있을수 있지만, 보편적으로 나오는것 3가지를 뽑자면 다음과 같을것이다: 유지보수성확장성재사용성사이드 프로젝트는 처음부터 하나하나 쌓아올릴수 있기에 효율적으로 구조를 짜고 작성할수 있었다.우리 유니페스트는 드로이드 나이츠와 나우 인 안드로이드를 참고해 다음과 같은 구조를 세웠다:구글 권장 아키텍쳐, MVI 패턴, 빌드 로직, 멀티 모듈보통 기술적으로 협업을 한다 했을시 클린아키텍쳐와 MVVM을 사용하는것이 일반적이다. 그렇다면 왜 유니페스는 이러한 방식으로 작성했을까? 우리 프로젝트의 주요 구조별 포인트들을 하나하나 알아가보자.1. 아키텍쳐아키텍처는 구글 권장 아키텍처를 사용했다. 나우 인 안..
우리팀이 성공적인 런칭을 마치고, 현재는 휴식기 및 앞으로 어떤것을 더 진행해볼지 고려하고 있는 상황이다. 우리가 어떻게 협업을 했는지 작성하기 딱 좋은 시기인거같아 정리 겸 기록해보려한다.팀 구성팀구성을 마치고보니 PM 1명, ios 1명, 안드로이드 2명, 웹 프론트 1명, 백엔드 4명, 디자이너 1명으로, 총 10명의 팀원이 모집되었다.모이고 보니, 생각보다 개발을 더 잘하는사람들이 모이게 되었다. 다들 개발에 어느정도 자신이 있고 고학년들에 열정까지 있으니 초기단계가 일사천리로 진행되었다. 이게 정말 다행이였던것이, 프로젝트는 다행히 처음 목표했던바와 같이 진행되었만, 의외로 시간이 많이 촉박했었다. 지금 생각해보니 이정도의 실력있는 팀원들이 아니였으면 살짝 위험했을수도 있겠다 싶다. 3월 중순에..

시작에 앞서 어플의 홍보부터 (__)플레이스토어:https://play.google.com/store/apps/details?id=com.unifest.android 유니페스 : 대학 축제 지도를 펼쳐라! - Google Play 앱대학 축제 일정과 참가하는 연예인 정보를 확인할 수 있으며, 축제의 다양한 행사 부스 위치를 지도를 통해 확인할 수 있는 서비스 입니다.play.google.com 시작은 소박했다. 재밌는 개발을 하고싶어 여러가지 아이디어를 떠올리며 개발할것을 찾고 있던중, 에브리타임에서 재밌는 글을 발견했다. 우리학교 학생들이 모여 대학생활의 꽃인 대학축제의 라인업을 알려주는 어플을 만들어보자는 것이였다. 그당시 나는 흠... 그러고 보니까 진짜 이런 서비스가 없네? 오 이거 재밌겠는데?..
공부를 하다보니 DFS와 BFS를 좀 일반화하고, 단계별로 나눠서 기본형을 만들어 보면 좋겠다 싶어 정리한다 전역 변수 선언: visited: 각 노드의 방문 여부를 추적하는 배열 또는 맵. dx, dy: x축과 y축 방향의 이동을 나타내는 배열. 상하좌우 또는 대각선 이동을 위해 설정. DFS 함수 선언: DFS 함수는 현재 노드의 좌표와 필요에 따라 추가적인 매개변수를 인자로 받자 현재 노드 방문 처리: 현재 노드를 visited 배열에 방문했다고 표시 인접 노드 탐색: 현재 노드에서 이동 가능한 모든 방향(dx, dy를 사용해서 nx,ny를 만들어주자)에 대해 반복문을 실행 각 방향에 대해 새로운 위치 nx, ny를 계산 탐색 조건 확인: 새로운 위치 nx, ny가 탐색 영역 내에 있는지 확인 해당..
https://velog.io/@jsb100800/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EB%A7%88%EC%97%90%EC%8A%A4%ED%8A%B8%EB%A1%9C-13%EA%B8%B0-%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-2%EC%B0%A8-%ED%9B%84%EA%B8%B0 [소프트웨어 마에스트로 13기] 코딩 테스트 2차 후기 소프트웨어 마에스트로 13기 선발과정 2차 코딩테스트 응시 복기 및 후기. velog.io 후기를 보다보니 한번 정리할만한것이 있어 작성한다. 일단 round함수가 무엇인지는 모두 알고있을것이다. 반올림해주는 함수! round 뒤에 붙는 숫자는 보여주고 싶은 소수점만큼 적는것 정도만..
누구나 시험직전 자기만의 필살노트를 작성한다. 평소에 열심히 하다 요것만 한번 흝어보면 깔끔하게 정리하고 시험볼수있는 노트. 오늘은 그런것 한번 정리해보려한다. 문자열 처리 startswith(substring): 문자열이 특정 문자 또는 문자열로 시작하는지 확인한다. endswith(substring): 문자열이 특정 문자 또는 문자열로 끝나는지 확인한다. split(delimiter): 문자열을 특정 구분자로 나누어 리스트로 반환한다. 의외로 문자열에서 유용할때가 많은데, 크로아티아 알파벳같은 문제에서 유용하게 사용했다. https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 ..
# 입력 받기 N = int(input()) # 문자열의 개수 strings = [input() for _ in range(N)] # 문자열들 M = int(input()) # 접두사의 개수 prefixes = [input() for _ in range(M)] # 접두사들 # 각 접두사에 대해 문자열을 순회하며 접두사로 시작하는지 확인 for prefix in prefixes: count = 0 # 접두사로 시작하는 문자열의 개수 for string in strings: if string.startswith(prefix): count += 1 print(count) 접두사 확인할때 쓰는 코드이다. 사실 너무 간단한 글이라 적지않을까도 고민했지만, 코테전 한번 블로그를 쓱 읽는것만으로도 충분하게 작성하고싶..

아무래도 프로그래머스의 모든문제를 풀었지만 불안한것이 사람마음이다. 시험전 마지막 정리로 한번 흝어보자. index 기본적인 SQL 조회구조 집계함수(GROUP BY와 세트) String, Date 연산함수 번외. 그 외에 헷갈릴 만한 내용 0. 기본적인 SQL 조회구조 SELECT 칼럼 FROM 테이블 JOIN 조인 WHERE 조건 GROUP BY 그룹칼럼 HAVING 그룹조건 ORDER BY 정렬조건 LIMIT 출력개수 ; 1. 집계함수(GROUP BY와 세트) AVG() # 평균값 = SUM() / COUNT() SUM() # 합 COUNT() # 그룹 내 데이터 개수 MAX() # 최대값 MIN() # 최소값 2. String, Date STRING 문자열 LIKE '%조건%' # 문자열에 조건이..