◻ 전체 글 수 :
🚪<방탈출고사> 개인 프로젝트 후기 Part 2
개인 프로젝트 의 후기를 이어서 작성해보려 합니다. 저번 글에선 앱을 개발하며 겪었던 기술적인 고민에 대해 나누었다면, 이번 포스트에선 라는 콘텐츠를 기획하고 개발하며 겪었던 고민에 대해 이야기를 해보겠습니다. 🚪 개인 프로젝트 후기 Part 1 바로가기 🎮 방탈출고사는 해당 링크를 통해 직접 플레이하실 수 있습니다. 방탈출고사 roomescapetest.swygbro.com 🕹️ 콘텐츠를 기획한 계기 (미궁 게임 제작자로서의 경험 소개)우선 제가 이번 프로젝트의 소재를 '방탈출 게임'으로 선정한 이유에 대해 좀 더 자세히 말씀드리고자 합니다.저는 2021년부터 '미궁 게임' 제작 플랫폼 '더 라비린스'에서 미궁 제작자로 활동을 이어왔습니다. 여기서 '미궁 게임'이란 웹 게임의 장르 중 하나로..
🚪<방탈출고사> 개인 프로젝트 후기 Part 1
작년 5월에 출시한 첫 개인 프로젝트 의 후기를 한 번 자유롭게 써보기 위해 오랜만에 포스트를 작성합니다. 후기 작성이 이렇게 늦어진 이유는, '방탈출고사'를 출시하자마자 기말고사 + 계절학기가 세트로 절 기다리고 있었기 때문이었습니다. 그리고 계절학기 수업의 중간고사가 끝난 지금, 뒤늦게 마음을 잡고 글을 써봅니다. 후기는 2개의 Part로 나누어 작성하려 합니다. 우선 Part 1에서는 라는 앱의 기획 과정과, 앱에 필요한 기능을 구현하면서 겪었던 난관 및 극복 과정 등 '기술적인 측면'에 초점을 맞춰 작성할 예정이고, Part 2에선 게임 콘텐츠를 개발하며 겪었던 고민이나 생각 등과 같은 '콘텐츠적 측면'에서 후기를 작성해보려 합니다. 이 포스트에서는 우선 기술적인 측면에 대해 후기를 적어보고, ..
[Web] PWA(프로그래시브 웹 앱)이란 무엇일까?
이번 5월달에 SWYG(스위그)에서 진행하는 스위디(SWYDY) 스터디에 참여하여 PWA에 대해 처음 학습하게 되었습니다. 이번 포스트는 스위디 스터디 1주차 때 배웠던 내용을 바탕으로 작성하였습니다. PWA란 무엇인가? PWA란 Progressive Web Application의 줄임말로, 모바일에서 앱 스토어를 통해 설치하는 네이티브 앱처럼 사용할 수 있는 웹 어플리케이션을 말합니다. 쉽게 말하자면, 웹 어플리케이션을 Mobile App화(化)한 것이라 할 수 있겠습니다. 그렇지만 PWA는 일반 웹 앱처럼 기본적으로 HTML, CSS, JavaScript와 같은 웹 기술을 통해 만들어집니다. 2015년 Google Chrome의 엔지니어 알렉스 러셀(Alex Russel)은 '점진적(progressi..
[Web] CSR과 SSR이란 무엇일까?
SSR과 CSR이란? SSR과 CSR이란 개념은 웹의 UI를 생성하는 렌더링 과정이 어디에서 일어나는 지에 따라 그 차이가 있습니다. 이 두 개념을 잘 이해하기 위해선 웹 브라우저가 어떻게 동작하는지, 웹 사이트가 어떤 과정을 통해 우리 눈 앞에 나타나게 되는지를 미리 알고 있어야 합니다. 이에 대한 내용은 제가 예전에 작성해 둔 포스트를 아래 링크로 달아드리니, 부디 참고해주시기 바랍니다. 주소창에 naver.com을 치면 일어나는 일을 쉽게 이해해보자 (이 포스트는 velog 플랫폼에 포스팅했던 게시글을 그대로 가져온 것입니다. 감사하게도, 당시 이 게시글이 velog 월간 트렌딩 1위에 올랐습니다. 읽어주신 모든 분께 이 자릴 빌어 진심으로 감사의 sylagape1231.tistory.com 웹에서..
🦁 멋쟁이 사자처럼 11기 합격 후기 (서류, 면접)
웹개발 IT 연합 동아리 '멋쟁이 사자처럼 (이하 멋사)' 대학 11기에 지원해서 합격하였다.개인적으로 이 동아리에 정말 들어가고 싶어 지원서랑 면접을 나름 열심히 준비했는데, 이렇게 좋은 결과를 얻게 되어서 참으로 뿌듯하다. 사실 나도 멋사 지원을 준비하면서 구글링을 통해 다른 분들의 합격 후기를 여럿 참고했다. 그런 의미에서 앞으로 멋사 지원을 준비할 분들이 나의 후기를 보고 도움을 받으셨으면 좋겠다는 생각이 들어 이 글을 작성하게 되었다. 지원서 작성우선 지원서에서 내가 받았던 질문들과 그에 대한 답변을 정리해보려 한다. Q. 다양한 IT동아리 중에서 멋쟁이사자처럼 대학 11기를 선택하고 지원하시게 된 이유를 작성해주세요.기초부터 차근차근 가르쳐주는 멋사의 체계적인 커리큘럼이 다른 IT 동아리와는 ..
[OS] 운영체제란 무엇일까? (정의, 종류, 역할)
운영체제의 정의 운영체제는 일종의 프로그램입니다. 다만 메모장이나 인터넷 브라우저처럼 우리가 흔히 쓰는 응용 프로그램과는 성격이 조금 다릅니다. 운영체제는 이러한 응용 프로그램들이 잘 실행될 수 있도록 하드웨어와 소프트웨어를 관리하는 특별한 프로그램 입니다. 운영체제가 존재하기에 사용자는 컴퓨터를 쉽게 다룰 수 있으며, 만일 운영체제가 없다면 컴퓨터는 '깡통 기계'로 전략하게 된다고 볼 수 있을 만큼 운영체제는 매우 중요한 도구입니다. (참고로 '깡통 기계'는 학부 수업 시간에 교수님께서 쓰신 표현이라 여기에도 그대로 적어봤습니다.) 운영체제의 대표적인 예시로는 윈도우, 맥 OS, 리눅스, 유닉스 등이 있습니다. 커널 영역 vs 사용자 영역 컴퓨터에서 프로그램을 실행하려면 메모리에 적재되어야 합니다. 그..
[프로그래머스] 하샤드 수 (📘Lv. 1) (Python)
문제 바로 가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (Python) 사용 언어 : Python 풀이한 날짜 : 2022-04-07 def solution(x): answer = True sum_x = 0 str_x = str(x) for elem in str_x: sum_x += int(elem) if x % sum_x: answer = False return answer 풀이 로직 및 문제 접근 과정 결국 내가 하면 되는 것은 x % (x의 각 자리수의 합) == 0 이 참인가 거짓인가를 밝히는 것 뿐이다. (O(1) 시간 내에 충분히 ..
[백준] 7576번 : 토마토 (🥇골드 5) (Python)
문제 바로 가기 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2023-02-10 from collections import deque # 입력값 처리 및 필요 변수 선언 m, n = tuple(map(int, input().split())) box = [ list(map(int, input().split())) for _ in range(n) ] visited = [ [False] * m for _ in range(n) ] days = [ [..
[백준] 15650번 : N과 M (2) (🥈실버 2) (Python)
문제 바로 가기 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2022-02-10 n, m = tuple(map(int, input().split())) lst = [] def print_lst(): for elem in lst: print(elem, end=" ") print() def choose(curr_num): if curr_num == m + 1: print_lst() for i in range(1, n + 1): if len(lst) >= 1 an..
[백준] 1929번 : 소수 구하기 (🥈실버 3) (Python)
문제 바로 가기 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2022-03-11 m, n = tuple(map(int, input().split())) def isPrime(a): if a == 1 : return False i = 2 while i*i