일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트
- CircuitBreaker
- Paging
- 서블릿
- Level2
- yml
- Docker
- HTTP
- MSA
- JUnit5
- 스프링 부트
- 미션
- 레벨2
- 우아한세미나
- mock
- AOP
- 트랜잭션
- JPA
- 의존성
- 백준
- 세션
- 코드리뷰
- REDIS
- 프로그래머스
- 우아한테크코스
- Spring Batch
- 우테코
- 프리코스
- 자바
- AWS
- Today
- Total
목록전체 글 (159)
늘

스프링부트 gradle, java11, 을 사용했습니다. 우선 버킷 이름을 설정하고, 모든 퍼블릭 엑세스 차단을 해제해 주고 현재 설정을 확인했다고 체크해줍니다. 만든 버킷에 들어간 후, 권한으로 한번 더 들어갑니다. 그 후, 버킷 정책의 편집을 눌러줍니다. 버킷 ARN을 복사해주고 정책 생성기를 눌러줍니다. Principal : * Action : GetObject, PutObject를 추가 ARN: 복사했던 {ARN}/* 입력 그 후, Add Statement -> Generate Policy를 하면 정책 내용을 복사해줍니다. 그리고 나와서 정책에 복붙을 해줍니다. 그리고 변경 사항 저장 [IAM 사용자 권한 추가] S3에 접근하기 위해서는 IAM 사용자에게 S3 접근 권한을 주고, 그 사용자의 액세..

처음 풀때는 단순히 정렬 기준 2개잡고 문자열 자르고, 소문자 만들고, int형변환 해주고, 등 귀찮은 정렬문제라고 생각했다. 그래서 백준 골드5? 실버? 사이쯤 된다고 생각해서 막힘없이 풀었는데 계속 테스트1, 2만 통과되고 나머지가 안되어서 결국 질문하기를 보았는데... 원인은 일반적 sort는 unstable해서 기존의 상태가 보장되지 않는다고 합니다. 그래서 stable_sort를 써야 한다고 한다... #include #include #include #include using namespace std; vector> v; bool compare(const pair& a,const pair& b){ if(a.second.first == b.second.first){ return a.second.s..

bfs를 이용해서 구현을 했다. level 3 치고는 단순한 bfs/dfs문제여서 당황한 느낌..? 아직 방문하지 않았다면 bfs돌면서 방문을 체크해주고, bfs가 끝나면 다시 방문 안 한 구간부터 찾아서 반복해주면 되었다. #include #include #include #include using namespace std; int visited[201]; queue q; vector v[201]; void bfs(int x, int n){ visited[x]=1; q.push(x); while(!q.empty()){ int cx = q.front(); q.pop(); for(int i=0; i

알고리즘은 간단했다. 단순히 완전 탐색 방식으로 조합의 모든 경우를 계산하고 중복되는 만큼 ex) aabab와 같은 경우 3! 2!으로 나눠주면 됐다. 문자열보단 조합론(?)에 가까운 문제였다. 하지만 조합은 1 3 2 처럼 모두 다른 숫자나 문자로 구성되었지만 이 문제는 중복된 문자들도 있기 때문에 각 문자마다 id값을 주어 구분하였다. #include #include #include using namespace std; vector v;// id, 문자 int over[27]; int visited[27]; string s; int n; char ans[11]; int res = 0; int factorial(int n) { long long sum = 1; for (int i = 1; i > s; ..

백앤드 개발자의 친구 데이터베이스를 알아보려고 한다 [데이터베이스의 특징] 실시간 접근성 : 사용자의 질의에 대하여 즉시 처리하여 응답한다. 계속적인 진화 : 삽입, 삭제, 갱신을 통하여 항상 최근의 정확한 데이터를 동적으로 유지한다. 동시 공유 : 여러 사용자가 동시에 원하는 데이터를 공유할 수 있는 특징을 갖는다. 내용에 의한 참조 : 데이터베이스에 있는 데이터를 참조할 때 투플(tuple)의 주소나 위치가 아닌 사용자가 요구하는 데이터 내용에 따라 참조한다. 데이터 논리적 독립성 : 응용프로그램과 데이터베이스를 독립시킴으로써 데이터 논리적 구조를 변경시키더라도 응용프로그램은 변경되지 않는다. [데이터베이스 관리 시스템] 데이터베이스를 조작하는 별도의 소프트웨어로, DBMS를 통해 데이터베이스를 관리..

Servlet (서블릿) 자바를 사용하여 웹페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말함 Controller 스프링 서버 개발자 입장에서는 시작점과 끝점으로 보이지만, 사실 스프링이 사용자의 요청 (Request)과 응답 (Response)을 처리해 주고 있습니다. 그럼 controller를 사용하지 않은 코드와 controller를 사용한 코드는 무엇이 다른지 코드로 확인해 보겠다. /* Servelte 코드 */ @WebServlet(urlPatterns = "/api/products/*", loadOnStartup = 1) public class AllInOneServlet extends HttpServlet { // 신규 상품 등록 @Override protected void ..

UCPC 2020 예선 G번 문제이다! UCPC 2020 예선 www.acmicpc.net 문제는 위와 같다. 생각보다 단순한 BFS를 돌리면 됐었다. 하지만 날짜를 증가시켜줄 때, 한꺼번에 넣어줘야하기 떄문에(따로따로 순서대로 날짜를 증가시키면 다음번에 루머확인할때 오류!) q에 한번 더 담아서 돌려줘야 한다는 것만 주의하면 됐었다. #include #include #include using namespace std; vector v[200000]; int rumor[200000] = { -1, }; int n; int count_rumor(int x) { int cnt = 0; for (int i = 0; i < v[x].size(); ++i) { if (rumor[v[x][i]] != -1) { c..

https://programmers.co.kr/learn/courses/30/lessons/17676

OneToOne에서 새로운 이슈를 맞이했다... 쿼리가 두번 나가는 즉, eager로 로딩이 된다. 바로 OneToOne으로 Lazy 로딩을 사용하려면 따로 설정을 해야한다. 또한 OneToOne관계는 fk를 어디에 두느냐에 따라 성격이 달라져서 잘 생각해보고 정해야한다. 결론부터 말하자면 3가지 처리가 필요하다. nullable이 허용되지 않는 @OneToOne 관계. (ex: Plan과 PlanResult) 양방향이 아닌, 단방향 @OneToOne 관계. (parent -> child) @PrimaryKeyJoin은 허용되지 않음. optional 을 false 로 해두는 값은 CascadeType.PERSIST 와 같이 동작 안한다라고 한다.(null일 수 없다) 위의 사진은 주 테이블에 fk를 둔..

우선 gradle에 swager를 설치해준다. 자료는 mavenrepository(https://mvnrepository.com/)에서 얻었다! implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' 우선 jwt를 이용하기 때문에 swagger 관련 페이지를 들어가기 위해 web.ignore에 추가해준다. 그리고 swagger config파일을 만들어 기본 설정들을 해주었다. Docket을 생성하여 api정보, jwt를 사용하기 때문에 securityContext..