일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- expo
- 티스토리챌린지
- 블로그 뉴비
- Redux
- Dreamhack
- react-router-dom
- 부산 맛집 OPEN API
- redux state값 유지
- React
- 오블완
- apk 빌드
- 개발
- web-view
- 사업계획서
- 프로그래머스
- 보안
- 새로고침
- url 랜더링
- 드림핵
- 창업 300
- 공공데이터 포털
- 훈수 가능
- 코딩테스트
- level3
- php-1
- API 활용 신청
- 고고학 최고의 발견
- python
- 꿀팁 환영
- Today
- Total
목록전체 글 (89)
1223v
https://www.acmicpc.net/problem/11561 기본적인 조건인 최대한 많은 징검다리를 밟는다는 것은 최소한 짧게 뛰어야 많이 밟게 됌즉, 1 + 2 + 3 + 4 + 5 + 6 .... + N 이런식으로 뛰어야 최대로 밟게된다. 위 공식은 등차 수열이므로 SUM = N(N+1) // 2로 정리할 수 있다. 즉, 결과 값인 SUM이 N을 넘지 않는 선에서 제일 가까운 SUM 값에 대한 middle이 최대로 밟을 수 있는 값이다.import sysinput = sys.stdin.readlineT = int(input())for _ in range(T): N = int(input()) result = 0 start = 0 end = N while ..

https://www.acmicpc.net/problem/1072 수학적 풀이# https://www.acmicpc.net/problem/1072import sysimport mathinput = sys.stdin.readlineX, Y = map(int,input().split())check = (Y * 100) // Xif check>=99: print(-1)else: check += 1 k = ((check*X)-(100*Y)) / (100-check) result = math.ceil(k) print(result) 결국 1%만 늘어도 변화가 일어나는 것이기에 현재 승률에 1%를 더한 값으로 몇게임이 더 늘어나야하는지에 대한 기본 방정식을 세워 줬다. 하지만, 4%에서 계속 ..

(ver.스프링부트 3.x , 스프링 시큐리티 6) 문제 인식Spring Security를 통해 세션방식 로그인 개발 진행 중, 로그인 시도 시 정상적으로 인증정보를 바인딩하고 있으나, 페이지 이동 시 인증정보가 없어지는 것을 발견했습니다.이에 해결과정과 코드를 공유하고자 합니다. 기존 코드의 문제점은 다음으로 추측했었습니다.SecurityContextPersistenceFilter란? SecurityContextPersistenceFilter SecurityContextPersistenceFilter는 Spring Security에서 매우 중요한 필터 중 하나로, HTTP 요청이 들어올 때 SecurityContext를 세션에서 복원하고, 요청이 완료되면 SecurityContext를 세션에 저장..
문제 인식통번역 플랫폼 개발 진행 중, 음원과 녹음 동시 작업 실행 시, 녹음의 품질이 저하되는 것을 발견했습니다.이에 해결과정과 코드를 공유하고자 합니다. 기존 코드의 문제점은 다음으로 추측했었습니다. 문제점 종합1. recorderDestination와 audioContext가 컴포넌트가 리렌더링될 때마다 새로 생성됨audioContext와 recorderDestination이 컴포넌트가 리렌더링될 때마다 새로 생성됩니다. React 컴포넌트는 상태 변화로 인해 여러 번 리렌더링될 수 있는데, 이때마다 새로운 AudioContext와 MediaStreamDestination이 생성되어 기존의 오디오 스트림이 무효화되거나 상태를 유지하지 못할 수 있습니다. 2. 비동기 처리 문제navigator.m..
고민의 시작 🌟🌟🌟보통 대학생 프로젝트를 진행하면, 개발 - 기획 - 디자인 - 마케팅의 영역이 명확하게 분리되어 있지 않고, 기한에 맞춰 데드라인 개발을 하는 경우가 많을거다. 그래서, 규모가 작은 프로젝트는 테스트를 작성하지 않고 진행하는 경우가 많고 이로 인해 모든 서비스가 의존하고 절차지향적 코드가 되며, 이후 유지보수가 힘들어지는 코드가 된다.또한, 모든 비즈니스 로직에서 발생하는 에러들이 서버를 돌리고 QA과정에서 발견되며, 이를 수정할 때 역시 단위별로 테스트할 수 있는 것이 아닌 유기적으로 연결되어있는 코드를 하나씩 따라가 보며 수정해야한다….필자는 이러한 문제를 서비스가 완성되고 리펙토링하면서 이것이 과연 객체지향적이라 할 수 있는가? 라는 의문이 들게 되었고, 테스트 코드를 작성해..

고민의 시작대학생분들이 IT 스타트업을 창업해 서비스를 구현한다고 하면, 회원제는 필수로 구현하게 될 것이다. 하지만, 고민에 빠지게 되는 것은 큰 IT 기업은 대부분 세션 방식을 쓰는데 왜 세션을 사용하는 거지? 토큰 방식은 왜? 근데, 그럼 뭐써? 라는 고민을 한 번쯤은 해봤을 것이다.필자도 로그인 파트를 진행하면서 세션과 토큰 중 추후를 위해 어느 방식이 좋은 것인가에 대해 고민하게 되었고, 직접 사용해본 경험을 토대로 세션과 Token의 필요성, 장,단점 그래서 레디베리는 왜 이 방식을 선택했는지 추후 문제는 없는지를 이야기 해보고자 한다. 왜 인증에서 상태가 필요해?Stateless인 HTTP 특성으로 사용자를 특정할 수 있는 어떠한 수단이 필요하다.이를 위해, 세션 혹은 토큰을 사용해 서버와..
Enum이란?열거형이라고도 불리는 Enum은 멤버라 불리는 명명된 값의 집합을 이루는 자료형이다.상수 데이터들의 집합이라고 생각하면된다.예로는 요일 / 계절 / 주사위 등이 있다.월, 화, 수, 목, 금, 토, 일 / 봄, 여름, 가을 , 겨울 / 1, 2, 3, 4, 5, 6이와 같이 한정된 데이터의 묶음을 열겨형 타입 Enum으로 묶는다면 구조적으로 설계가 가능하다.과거 상수 정의final 상수final 제어자를 이용해 변수를 상수화정의된 상수는 클래스 내에서 전역으로 사용될 수 있으며, 한 번 정의된 후에는 값을 변경할 수 없습니다.하지만, 숫자 상수만으로는 어떤 값이 어떤 의미를 가지는지 직관적으로 알기 어렵다. 코드만 봐서는 1이 월요일을 나타내는지 알기 어렵다. 또한 정수형 상수는 같은 정수형..

8개월의 여정을 마치고 뒤늦은 후기를 올려본다.사건의 발단 열정 넘치는 한 PM분과 연락이 닿아 지금껏 동고동락한 형과 함께 팀을 꾸리게 되었다.제품을 만들기에 앞서 가장 힘들었던 부분은 팀원 모으기 였던 것 같다. 아무리 학교 커뮤니티에 올리고, 게시물을 붙혀도 아무것도 없는 팀 에는 관심 조차 주지 않았다…특히, 프론트엔드가 문제였다.지이이이이이인짜 안구해졌다…. 그래서 기존에 프론트엔드를 했던 경험을 다시금 살려 해야하나…. 고민마저 들었다….그래서 직접 발로 뛰며 발품 파는 방법으로 진행할 수 밖에 없었다.결국 지인의 지인, 지인의 지인의 지인으로 사람을 모을 수 있었고, 이때 정말 네트워킹의 중요성을 명확히 알 수 있었다. ㅠㅠ여차저차해서 개발 시작 전까지 PM 1, 디자이너 1, 백엔드 2, ..

전략패턴이란?전략 패턴은 실행 중에 알고리즘 전략을 선택해서 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴이다.여기서 전략이란 일종의 알고리즘이 될 수도 있고, 기능이나 동작이 될 수 있는 특정한 목표를 수행하기 위한 계획을 말한다.조금 어려운 느낌일지도 모른다.간단하게 생각하면 위 사진과 같이 검색창을 구현하는 상황을 생각하면 된다. 보통은 위 사진과 같이 클릭이 있어나면 그 클릭의 모드에 따라 조건문을 거쳐 메소드를 실행할 것이다.하지만 이는 수평적 확장을 진행할 때, 기능이 추가될수록 조건문이 늘어나고 기존의 코드를 수정해야한다는 단점이 존재한다. 즉, 고수준 모듈이 기능이라는 저수준 모듈에 의존하여 코드의 주도권을 뺏기는 상황이라 볼 수 있다.이는 객체 지향 5원칙에 OCP..

싱글톤이란?단 하나의 유일한 객체를 만들기 위한 코드 패턴메모리 절약을 위해, 인스턴스가 필요할 때 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를 가져와 활용하는 기법. → 전역변수를 만들어 이용하는 이유는 똑같은 데이터를 메서드마다 지역변수로 선언해서 사용하면 무의미하고 낭비이기 때문에 전역에서 한번만 데이터를 선언하고 가져와 사용하면 효율적보통 해당 객체가 리소스를 많이 차지하는 역할을 하는 무거운 클래스일 때 사용ex) 데이터베이스 연결 모듈에서 데이터베이스에 접속하는 작업(I/O 바운드)은 그 자체로 무거운 작업에 속하며, 한번만 객체를 생성하고 돌려쓰면 되지 굳이 여러번 생성하여 메모리를 낭비할 이유가 없음, 디스크 연결, 네트워크 통신, DBCP 커넥션풀, 스레드 풀, 캐시, 로그기록 ..