전체 글

개발 일지
자바에 처음보단 익숙해져서 불편한 느낌은 덜한데, 그래도 코테용으로는 확실히 아닌 것 같다 출발이 늦으신 분들도 이제 슬슬 맞춰서 같이 갈 수 있을 것 같아 다행이다 아직은 프로그래머스 레벨 1 수준의 문제들이라 무리 없이 소화하고 있다 stream이나 string buffer 같은 것들을 잘 사용해야 할 것 같다 파이썬 DFS 복습 46번 class Solution: def permute(self, nums: List[int]) -> List[List[int]]: result = [] # nums에서 하나 빠져서 prev_nums에 추가 -> 반복, 재귀 -> 순열 def dfs(nums, prev_nums): if not nums: result.append(prev_nums[:]) return for..
1. JAVA 우려하던 대로 파이썬에 너무 익숙해져 있어서 코테 문제 푸는데는 너무 별로인 것 같다 자료형이 너무 세분화 되어있고, 당연히 그에 따른 메소드도 많은데, 기능은 훨씬 적은듯 싶다 그래도 자바에 더 익숙해지는 것에는 도움이 되지 않을까 싶고, 코테는 따로 파이썬으로 공부하려 한다 타의 반으로 달리기반에 들어오신 분들이 두 분 계셔서 좀 얼탔는데, 앞으로 방법을 잘 생각해봐야겠다 내 풀이 코드 설명하는 것을 좀 더 듣는 입장에서 이해가 잘 가도록 하고 싶다 2. IntelliJ 깃헙과 연동하는 방법 다시 한번 복습 share project on github -> 프로젝트 폴더 우클릭 후 깃 선택한 후 commit directory 프로젝트 시작 세팅 복습: JDK 연결 -> src 안에 클래스..
3,4일에 좀 빡세서 미루다가 5일차에 따로 작성 1. git Github desktop과 파이참을 이용해 브랜치 활용해 작업해보았음, 앞으로 계속 연습해볼 계획 지금까지 이해한 사항: 로컬에 처음 브랜치 만들면 기반이 되는 원격의 메인을 fetch로 다 불러온 후 그 위에서 작업하다가 내 원격에 있는 브랜치로 푸쉬 원격에 있는 내 브랜치의 내용과 원격의 메인과 머지(상황에 따라 리베이스) 원격에서 합친 부분을 다시 내 로컬에 fetch 하여 반영 각 브랜치로 이동할 때 checkout 아직 익숙치 않고, 개념 공부도 더 필요함 2. 웹사이트 완성(http://dfsdff.shop/) http://dfsdff.shop/ Mango Plate URL 카테고리 --카테고리 선택-- 족발.보쌈 찜.탕.찌개 돈..
1. JWT PyJWT 모듈 활용 사용자가 로그인 창에서 입력한 값을 받아 회원 db와 비교 후 회원 인증이 되면 만료기간과 일부 개인정보가 포함된 JWT 전송 로그인이 된 이후에는 매 작업마다 JWT를 서버에 전송하면서 회원임을 인증함 기능이 다양하진 않아 refresh_token 사용은 따로 없는 것 같고, 직접 구현해야 하는 것 같다 refresh_token은 access_token과는 또 다른 JWT로, 보안을 강화하기 위해 만들어짐 refresh_token은 access_token이 만료되었을 때 갱신해주는 역할 refresh_token은 더 안전한 곳에 저장하고 access_token의 만료기간을 더 줄일 수 있다 그러나 더 안전한 곳이라는 부분에서 딜레마가 생김(프론트에 저장? db에 저장?..
보호되어 있는 글입니다.
스프링 웹 개발 기초 정적 컨텐츠: 관련 컨트롤러가 없어 바로 관련 html을 클라이언트에 넘겨줌 (우선순위 최하위) MVC: 컨트롤러가 (사용자에게 데이터를 받고) 모델에 처리한 후 뷰 리솔버가 이를 반영한 html을 클라에 넘겨줌 API: 컨트롤러가 (사용자에게 데이터를 받고) 이를 넘겨받은 HttpMessageConverter가 문자나 객체를 http body에 직접 넣어 클라에 보내줌 일반적인 웹 애플리케이션 계층 구조 테스트 케이스 작성 (단위 테스트) main 메소드나 컨트롤러에서 눈으로 보는 테스트보다 테스트 파일을 따로 만들어 프레임워크를 활용하기 테스트 순서에 의존관계가 있지 않게 @AfterEach로 db 초기화, @BeforeEach로 객체 새로 생성 및 DI Assertions.as..
· CS/DB
고정된 길이라면 임의의 n번째 데이터의 시작점을 알기 쉽다 데이터가 삭제되었을 때 어떤 레코드나 그 위치로 대체될 수 있다 히프 화일, 순차 화일을 실제 DB에 사용하기에는 무리가 있다 실제로는 인덱스를 활용함 중복되는 키를 가지고 인덱스를 만들 수 있음 기본 키에 대해 화일이 정렬되어있다면 각 데이터 블록에서의 대표 키 값만 가지고도 인덱스를 만들 수 있다 희소(일부만 가지고 만듦) ↔ 밀집(모든 것을 가지고 만듦) 같은 탐색 키를 갖는 것들은 모여있기 때문에 해당 키로 검색된 데이터 주변에 범위 질의하기 유용하다 탐색 키 값에 따라 정렬되어 있지 않기 때문에 반드시 밀집 인덱스 형태로 만들어야 함 인덱스 엔트리가 많아지므로 접근 횟수가 증가해 느림 희소 인덱스 형태보다 느리다 출처: http://ww..
· CS/DB
seek time이 주요함 한 릴레이션을 같은 실린더에 저장하면 효율이 좋음 성능을 위해 DBMS만의 버퍼와 버퍼 교체 알고리즘을 따로 두어 관리하기도 함 대부분 헤더에 제어정보 입력 고정 길이일 때 관리하기 편함 실제 디스크에는 연속적으로 저장되어있지 않다 (빈 디스크에 저장하는 경우 제외) 연결리스트를 활용해 연결된 모습 레코드에 데이터가 정렬되어 저장되어있는 경우 채우기 인수(fill factor)가 적은 경우가 유리하다 출처: http://www.kocw.net/home/cview.do?lid=1294cedf7b88abf5
error: 환경적인 오류, exception: 코드 오류 try ... catch 구문 예외 발생 시 그 아래의 코드는 실행하지 않음, 예외 처리하면 실행 함 예외 계층에 따른 우선순위 존재, 기본적으로 try에 가까운 순서로 실행 try 내부에서 실행하다 예외 발생하면 try 내부의 그 이후 코드들은 실행되지 않음 public class ExceptionApp { public static void main(String[] args) { System.out.println(1); int[] scores = {10,20,30}; try { System.out.println(2); // System.out.println(scores[3]); System.out.println(3); System.out.pri..
변수, 메소드, 클래스, 인스턴스로 중복을 제거하고 가독성을 높혀 코드의 유지보수에 획기적인 향상 접근 제어자(access modifier) public이 붙은 멤버는 외부 클래스에서 사용가능 private이 붙은 멤버는 외부 클래스에서 사용 불가능, 멤버가 속한 클래스 내부에서는 사용 가능 default이 붙은 멤버는 해당 멤버를 선언한 클래스가 속한 패키지의 모든 멤버가 접근 가능 protected: 이 멤버를 선언한 클래스의 멤버 이 멤버를 선언한 클래스가 속한 패키지의 멤버 이 멤버를 선언한 클래그를 상속받은 자식 클래스의 멤버 http://www.tcpschool.com/java/java_modifier_accessModifier 기타 제어자 final: 변수(상수 취급), 메소드(오버라이딩 불..
hjkim0502
CODELOG