목록전체 글 (53)
yja
M개의 입력되는 문자열이 주어진 집합 S 에 정확히 일치하는 문자열이 있는지 보고 있으면 count 해서 출력한다. 문자열에 포함되는 게 아니라 S의 집합안의 문자열과 정확히 일치하는 걸 찾아야한다. 예시 입력 5 11// N개의 S 집합 baekjoononlinejudgestartlinkcodeplussundaycodingcodingsh// M개의 문자열 입력 baekjoon codeplus ✅codeminusstartlinkstarlink ✅sundaycoding ✅codingsh ✅codinghssondaycodingstartrinkicerink 예시 출력 4 시간 제한: 2초 (1억/1초 걸림) -> 2억까지 제한. 0. 직접 구현은 시간 초과 1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10..
테이브 연합 동아리에서 시작해서 지금까지 연장해서 개발 중이던 오프날 프로젝트가 이제 출시를 앞두고 있다. 테이브가 7월에 끝났으니까 추가로 4개월 정도 더 개발했다. 테이브에서 오프날 프로젝트로 우수상까지 받고 더 디벨롭하지 않으면 조금 아쉬울 것 같아 전체적으로 리펙토링도 하고 기능적인 부분도 완성도를 높여가기로 하였다. 동아리 활동 이후 연장한 프로젝트의 진행 과정을 쭉 돌아보려고 한다! 프로젝트 소개 프로젝트 목적교대 근무하는 사람들은 하루하루마다 자신의 근무형태가 바뀌기 때문에 스케줄 관리가 힘들다. 스케줄이 야간, 주간 처럼 바뀌어서 어느 날은 몇 시간 자지 못하고 출근할 때도 많다. 그렇기 때문에 수면 패턴이나 식습관도 규칙적으로 잡히기는 힘들기 때문에 이런 교대근무자들을 위해 스케줄과..
같은 프로젝트라도 다른 개발자라면 다른 development team과 bundle identifier로 앱을 빌드하게 된다. 따라서 다른 개발자와 협업할 때, 리뷰한 코드를 머지하고, 그 코드를 내가 받아서 사용할 때마다 나는 xcode에서 새로 development team과 bundle identifier를 설정해줘야 한다. 빌드할 때마다 이걸 매번 설정해줘야하니 번거로웠고, 설정하는 걸 까먹고 빌드 먼저 했다가 이로 인한 오류가 뜨는 일도 많았다. 또한 DEBUG나 RELEASE와 같은 빌드 구성(Build Configurations) 별로 설정을 분리하여 관리할 수 있다.release할 때 build identifier를 다르게 정해줄 수 있다는 말이다.예를 들면 개발자 A의 bundle id..
나는 9월 한달동안 해커스어학원 종로 캠퍼스를 다녔다.학원 다니기 전에는 2달동안 혼자 공부하면서 845점을 받았었다. 그치만 여기서 만족할 수 없어서 학원을 다니기로 했다. 전에는 혼자서 공부했지만 혼자서 꾸준히 공부하기는 어려울 것 같아서 집중적으로 관리해줄 수 있는 학원을 다니기로 했다. 내 목표는 900점을 넘기는 거였다. 전에도 나쁘지 않은 점수였으니까 열심히 하면 가능할 지도..라고 생각했다. 수강한 수업 총 20일(4주)간 주 5일 평일 2시간씩 수업을 듣는다. 내 계획은 오전 10시부터 12시까지 오전 시간에 짧게 수업 듣고, 오후 시간은 토익 공부 조금하고 내 개인 시간을 가져야지! 했다. 그런데 나는 이걸 너무 쉽게 봤다.. 다른 공부 시간을 갖는 건 어림도 없었다..ㅎㅎ 첫 주에는..
외부 헬스 어플리케이션(Apple Health Kit, Google Fit) 과 연동을 해보자. 프로젝트에서 연동해야할 데이터는 크게 체중, 걸음 수여서 이걸 해볼 것이다 ! React Native는 JavaScript로 작성하지만, HealthKit(iOS)과 Health Connect(Android)는 네이티브 API이기 때문에, JavaScript와 네이티브 코드 사이의 다리 역할을 해주는 리액트 네이티브 라이브러리가 반드시 필요하다. Ios 에서 Apple Health Kit 연동하기 1. 네이티브 브릿지인 라이브러리 사용하기 https://github.com/kingstinct/react-native-healthkit GitHub - kingstinct/react-native-healthk..
interceptor pattern을 통한 토큰 재발급은, API 요청이 실패했을 때 그 요청이나 응답을 가로채서 자동으로 새 토큰을 발급하고 재요청하는 것을 말한다. Axios 에서 interceptor 설정하기 성공한 응답(response)은 그대로 반환하고, 실패한 응답(error)에 대해 토큰 재발급 로직을 실행한다. axios.interceptors.response.use( response => response, error => { // 응답 에러가 발생했을 때 여기서 처리 }) 토큰 재발급 로직 사용자가 로그인을 하면 Access Token과 Refresh Token을 동시에 받는다. 그리고 다음 API 요청을 할 때 헤더에 Access Token을 넣어 보내서 사용자를 인증..
테이브가 7월 말에 끝났으니까 끝난지 2개월이나 더 지났다!미루고 미루다가 이제야 후기를 써본당.. 히히 동아리 지원 2월이었나.. 지원했을 시기가기억은 많이 안나는데 그때 이제 휴학하고 뭐하지 하던 시기였다. 휴학했는데 정해진 플랜이 없으면 그냥 조금 놀다가 공부 조금 하다가.. 그렇게 시간을 흘려보낼 것 같아서 시간이 많을 때 개발 연동 하나 해보자!!! 마음먹었다. 그 전 학기에도 멋사랑 유엠씨를 지원했었던 것 같은데 그때는 더더 개발 경험이 없어서인지 탈락했었다 ㅎ,ㅎ, 지원 시기에 GDG 코멤 활동, 밴드 웹사이트 개발만 하고 있었으니까 개발적으로 좋은 걸 쓸게 많진 않았다.지금 생각해보면 실력이 부족했었던 때에 지원했던 것 같다. 내 딴에는 만족스럽지 않은 플젝도 이것저것 모아서 지원서를 작..
커스텀 유틸리티 클래스란?Tailwind에서 기본적으로 제공하는 유틸리티 클래스(text-lg, bg-blue-500, flex, 등) 외에, 직접 새로운 유틸리티 클래스를 만들어서 Tailwind의 확장성 있게 사용하는 방법이다. 예를 들면 heading-xs, labe-s 와 같은 이름의 커스텀 유틸리티 클래스를 만들 수 있다.heading-xs 하나만 사용해도 그 안에서 설정해놓은 특정 fontSize, lineHeight, fontFamily, letterSpacing 을 바로 적용할 수 있게 되어, 테일윈드의 단점이 될 수 있는 긴~ 스타일 코드를 heading-xs와 같은 하나의 스타일로 간략하게 줄일 수 있게 된다. 디자이너가 만들어준 디자인 스타일 가이드를 보고 헤딩에 맞는 스타일 속..
로그인 구현 방식 로그인 하는 방식은 여러 가지 있지만, 크롬 익스텐션(프론트)에서 로그인 창으로 이동해 로그인을 성공한 후에 인가 코드를 받고, 벡엔드에게 이 코드를 넘겨주고, 다시 벡엔드로부터 accessToken을 받는 방식도 할 수 있다. 일반적으로 이렇게 할 수 있다고 배웠지만, 크롬 익스텐션에서는 조금 다르게 생각해봐야한다. 저렇게 할 수도 있겠지만 아주 번거로울 것이다. 크롬 익스텐션은 `chrome-extension://...`라는 도메인을 사용한다. 그런데 카카오 개발자 사이트에서 웹 플랫폼에는 오직 `http`와 `https`만을 도메인으로 등록할 수 있기에 프론트 측에서 바로 접근하는 것이 불가능하다. 따라서 이 프로젝트에서 선택한 방법은 벡엔드에서 바로 로그인 창을 받아오는 것이다..
큰소리 프로젝트를 개발한지는 좀 됐지만 이번에 기능 하나를 개발해서 까먹기 전에 글을 써보게 되었다. 큰소리 밴드는 홍익대 컴퓨터공학과 밴드 동아리이다. 3-1 학기에 동아리에 들어가서 한학기 잠깐 활동했었는데 좋은 친구들을 만나 그때 큰소리 부원들과 같이 개발을 하게 되었다 히힛 25년 1월부터 개발을 시작했고 프론트3, 벡엔드3 으로 팀을 이루어 개발을 하고 있다. 밴드부에서 현재 이용하고 있는 사이트이다!https://keunsori.com/ 큰소리 - 홍익대 컴공 밴드 학회홍익대학교 컴퓨터공학과 밴드학회 큰소리의 공식 홈페이지입니다!keunsori.com 그리고 깃허브!https://github.com/KeunSori 큰소리홍익대 컴퓨터공학과 밴드학회 큰소리. 큰소리 has 5 reposito..