12월 중반 부터 시작한 인프런 자바 강의, 자바를 메모리와 연관지어서 설명해주기 때문에 자바에 대한 더 깊은 이해가 가능하다. 지금은 CS를 배우고 있지만 짬나는 대로 해보려고 한다. 오늘은 JVM의 메모리 영역에 대해서 배웠다. JVM은 운영체제에서 메모리를 할당받
어제 미션 진행 과정을 적었다. 팀원 덕분에 괜찮은 하루를 보냈다. 감사함과 공부환경에 대한 생각을 다시함.
많은 것을 배웠던 하루. 내 생각을 많이 덧붙이진 못했지만 배운것들만 정리해도 내용이 긴 하루.
좌절. 오늘 내가 뭐했나 싶은 날. 그래 이런 날도 있어야지 맨날 뿌듯할 순 없잖아
CS 2주차 팀 마지막. 파이로에 독보적 존재 칭찬ㅋㅋ. JK의 첫수업.
객체를 잘 만든다는 것은? Getter Setter링크로 들어가시면 제일 밑에 질문 2가지가 있어요. 누군가 도와주시면 감사하겠습니다 🙏
상쾌한게 끝난 주말! 낼 부터 시작되는 3주차도 열심히 달리자!
정말 하루 종일 공부했다. 내일도 오늘처럼!
몇일전에 어떻게 공부할지 스스로 생각을 했더니 계속 괜찮은 하루가 이어짐. 빗소리가 떠남. 옛 추억 회상.
알고리즘 데이. 좋은데이.
프로그래머스 인형 뽑기 마침내 해결. 프로세스와 스레드. 오늘은 크게 힘들지도 않았다. 그렇다고 쉽게 공부한건 아니지만, 컨디션이 나름 괜찮았던 하루.
코드스쿼드 3주차 금요일도 끝. 인터페이스와 JDBC. 블로그 만들기
다중 상속 관계에 대해 배웠다. 자바는 기본적으로 다중 상속을 지원하지 않는데, 인터페이스를 이용하면 다중 상속 처럼 보이게 구현할 수 있다고 한다. 근데 다중 상속 처럼 보이게 구현한다는 말이 애매한데, 어쨋든 그렇게 구현했으니까 다중상속아닌가? 강사님이 왜 그렇게
모르는 부분은 그대로 두고 다음으로 넘어가는 것과 그대로 넘어가지 않고 계속 파고드는 것, 그 사이를 잘 조절하면서 공부하는게 좋은 학습법이라고 언급했다. 그 의미가 무엇인지 나도 알것 같다.
오랜만에 미션하면서 재미를 느꼈다. 구현하는 것이기 때문이다. 구현하는 게 엄청 재밌다는 걸 오늘 깨달았다. 동기와 비동기. 그 외 몇가지.
synchronized에 대해서 배웠다. 두 개 이상의 쓰레드가 있고, 그 쓰레들이 같은 자원을 공유할 때, 혼선을 방지하기 위해 있는 개념이다. 미션을 구현하면서 처음에 현황판을 담은 List의 사이즈가 0이면 현황판이 동작하지 않게하려고 어떻게 조건에따라서 쓰레드를
이번 미션 구현하면서 CS 공부하는 것과 달리 코딩하는 재미도 느꼈고 구현하면서 또 스레드에 대해서 검색을 해보며 알게 모르게 많이 배운것 같다.
오늘 미션은 데이터베이스! 그냥 sql을 설치하는 게 아니라 도커에다가 설치한다. 호눅스가 그냥 쓰는 os에 설치하면 컴퓨터에 안좋다고 했던거 같은데,,데이터가 마구잡이로 생겨서 그런가? 여튼, 도커라는 개념 먼저 배웠다.도커라는건 가상머신을 만들지 않고, 가상머신처럼
미션이어서 했지만 중간에 char set 하면서 설정을 잘못해서 뭘 잘못건들였는지 모르겠지만 자꾸 오류나서 계속 이미지 지우고 다시 만들고,,결국엔 해냈다. 특히 나스 블로그보고 따라하는데 엄청 도움이 되었다 링크아침에 공부시작하기전에 몸풀이로 잠깐 백준문제를 풀었는데
mysql에 레코드(데이터)를 insert 해보았다. 링크자바에서 데이터베이스 연동해보았다. 링크쪼오금이라도 공부하려고 노력했다.
Generic, Collections framework 제대로 알고 싶다고 느낀 날, 미션은 호눅스가 강의 해주는 걸 따라서 자바로 코드를 짜서 터미널에서 실행해봐야겠다.
오전에 지난 주 미션1을 마무리했다. 처음에는 자바에서 바로 db에 데이터를 생성하고 삽입해보려는 생각을 했으나 그렇게 하기가 어려웠다. 어떻게 할지 감도 안잡혔고 써치해봐도 이해가 잘 안갔다. 결국엔 호눅스가 강의해주는 대로 따라서 해보며 배웠다.자바로 간단한 웹 브
HTTP 박살내기 -> 실패 but http가 무엇인지 그리고 Request & Reponse 대략 어떻게 흘러가는지 알게 됐다자바 Wrapper 클래스 배움. 별로 어려운 개념은 아니었다.첨으로 Spring 입문했다. 프로젝트 생성부터 차근차근.인프런 자바 TPC강의
스프링으로 웹 개발하기에 앞서 기초적인 개발 방법들에 대해 배웠다. 정적 컨텐츠로 그냥 html을 때려박을 수도 있고 MVC와 템플릿엔진을 통해 아니면 API 를 통해 동적으로 만들 수도 있다. 내용 정리스프링을 통해 Welcome Page를 만들고 빌드하여 접속해보았
GUI를 다시 만들어봐야 할거 같아서 AWT로 태그한 지난 글들을 리뷰했다.인프런 스프링 김영한님과 비즈니스 요구 사항을 정리 해보고 전체적으로 어떻게 백엔드 개발이 이루어질지 배워봤다. 아직 작성중.Search 와 Research 에 대해 깊이 생각해보면서 어떤식으로
JavaFX 에 대해서 배웠다. 뭐든지 배우려면 내용이 방대한지라 원하는 기능을 어떻게 찾아서 쓸지 고민이었다. 그래서 찾아보면서 뭔가 이해하려고 하기보다 빠르게 많은 예제 코드들을 살펴보면서 코드들로부터 스스로 사용법을 익히고 구현이 되도록 먼저 애썼다. 어쩔땐 내용
Search 와 Resarch 에 대해 비교 해보면서 공부하는 데에 더 동기부여가 될 수 있도록 하는 인사이트를 얻었다. JavaFX 의 여러 기본적인 사용방법들을 정리했다. 💪To-do 주말에 아
김영한님의 스프링 강의를 들으면서 백엔드 개발이란 이런거구나 하고 배웠다. 아직까진 잘 모르겠는데, 재밌어보인다.
콜렉션 프레임워크에 대해서 생활코딩을 보면서 리뷰했다. 특히 최상위 Collection 인터페이스를 시작으로 어떤 모습으로 상속되어있는지 그림을 통해 잘 알 수 있었던 시간이었다. 그리고 Iterator 에 대해서 배웠다. 질문 몇가지가 생겼지만 사용법은 익혔다. 앞으
배운 게 있을 때마다 느낀점을 바로바로 TIL에 옮겨 적으니 훨씬 도움된다. 이전에 TIL 작성할 때보다 내용이 더 풍성해졌다. 굿굿! 오늘은 질문 안하려고 노력했다. 질문하고 싶을 때마다 진짜 이게 최선으로 다 시도해본 건가? 라고 스스로에게 물었다. 굿굿굿
다른 팀원들 PR을 3시간 정도 돌아다니면서 코멘트 했다. 내가 잘 알지못해도 궁금한 점들도 코멘트 남기고 소통하는 거 자체가 재밌다. 그리고 코드 구현 중에 어떤 개념에 대해 알고싶긴한데 그렇게 중요다고 생각하지 않아서, 평소에 흘려보냈던 개념들도 좀 더 자세히 생각
생성자를 통해 필드를 초기화 해주는 것과 바로 필드에서 초기화해주는 것의 차이점을 알게 됐다. 간단히 말하면, 생성자를 통해 초기화해주면 배열이라면 배열을 초기화한다던가 아니면 예외사항이 일어날 수있는 것들에 대해서 처리를 할 수 있기때문이다. 하여튼, 뭔가 미리 처리
git checkout, git switch and git restore, 프레임워크와 라이브러리, 예외처리.
git remote, git fetch, git rebase, Detached HEAD, git switch -c
learningGitBranching.js.org, 깃 PR 충돌
깃 PR 충돌 뇌피셜, 깃 PR 충돌 진짜 이유, static {}
참조, 깃 네이밍
forEach, List and ArrayList, ArrayList(int i), git conflict, 일기
static factory method, Value Object, 일기
static factory method
자바 프로그래밍이란, 번역기
고급언어란?, API란?, 왜 함수형태?
기능 구현에 대한 생각, 미션하면서 느낀거
Try with Resources, 미션 PR 잘읽히는 것 VS 잘 안읽히는 것, 람다식 작성하는 법을 알기전에, Optional을 배우기전에
merge되기 전 이어서 개발하기, 연산자, 정적 팩토리 메서드의 장점
스레드, 느낀점
미션5
동일성과 동등성 (VO)
스프링 IoC & DI
데이터베이스 DB, JDBC, Servlet 잠깐
서버 (Heroku), 영어, 느낀점
heroku 서버이용, MVC란?, 회원가입기능, 회원목록기능
회원 프로필 정보보기 구현, 질문하기 구현, 클라우드 입문, 시온 리뷰 질문, 상대경로와 절대경로의 중요성
미션구현, private static, @PathVariable
스프링을 이해하려면 차근차근히 자세히 짚고 넘어가야할 수 밖에 없다는 것을 깨달음.
날짜가 String 형태이면 어떤 단점이 있을까? 질문을 해결하기 위해서 먼저 기본적으로 현재 시각을 어떻게 불러올 수 있는지 알아보았다.
String은 불변이다, 날짜/시간 데이터를 String 받는다? No, unmodifiableList 가 뭔가요, 여긴 왜 static일 필요가 없을까?, Logger 를 따로 클래스로 빼서 사용하기?
git conflict 끝이 보인다?, 미션 진행하며 배운 것들
private static final, REST, 커밋 메시지
맥 파인더 단축키, 회원목록 초기화, HttpSession, AWS에서 스프링부트 웹서버 열기, 로그인 상태에서 자기 자신의 정보 수정
로그인 상태에서 자기 자신의 정보 수정, 스프링부트 Null 처리, 스프링부트 Setter & Getter, 캡슐화 관련 조언
스프링부트 String return, @Autowired, 스프링부트 Getter
MVC 이해
오늘은 AWS에 우분투 OS로 서버를 열어서 거기에 MySQL을 설치하고 JDBC와 연결하는 것을 배웠다. 더 나아가서 JDBC의 문제점과 현재 MyBatis나 JPA를 왜쓰는지도 배웠다.
Servlet, DispatcherServlet, ViewResolver
회원과 질문간의 관계 매핑, 질문 상세보기 기능, 질문 수정/삭제 기능 구현, 수정/삭제 기능에 대한 보안 처리, HttpSession!!!!!!, equals() & hashCode(), 어제 til 피드백에 대한 질문
MessageConverter, 댓글 구현 문제 해결, 깃 merge 취소, 깃 특정 브랜치 pull, 깃 원격에 잘못 push 하면?
AJAX ?
오늘은 Optional 을 사용하는 방법을 배웠다.
Viminum
짝프로그래밍, 스프링부트 서비스, code with me
PK, 구현부가 없는 if문
Optional.get(), null
JSON, Jackson, @JsonProperty, @JsonIgnore
Vim, Viminum, Vimtutor, 스프링, Transaction
객체 지향에 대한 생각
스프링 공식 가이드를 통해서 REST service를 만드는 법을 따라서 해봄. 확실히 뭣도 몰랐지만 미션을 통해서 따라해봤던 게 오버랩 되면서 이해하기가 수월했고, 머릿속에 더 정리가 됨.내가 하던 것들, 이를테면, 데이터베이스에 저장할 유저 객체를 H2 데이터베이스
매 정해진 시간마다 스트레칭을 해주려고 간단한 타이머를 사용하고 싶었는데 될 수 있으면 키보드로 조작할 수 있으면 좋다고 생각했다.지금 쓰고 있는 Keyboard Maestro 로 왠지 될거같아서 검색해봤는데 딱히 그런 방법은 없는듯 보였다.그래서 간단하게 스크립트를
자바지기님 영상들을 다 따라한 뒤에 마지막 미션으로 코드스쿼드에서 페이지를 나누는 미션을 받았다.구글검색에 spring data jpa pageable 로 찾아서 관련 자료를 찾아 적용하라고 함.근데 계속 따라하는식으로 미션을 해와서인지 당장 "이렇게 검색해서 적용해보
이전에 언급한 페이징을 참고해서 해결해보려했으나 넘 설명이 없어서 따라할 수가 없었다. 그러다가 yeon이 공유해준 유튜브 영상을 발견.근데 템플릿엔진을 Thymeleaf을 써서 이떄까지 쓰던 Mustache와 달라서 좀 접근하기가 어려웠다.그래서 페이징처리 튜토리얼을
이전 TIL 마지막에 자바버전을 마주처주면서 페이지가 나오도록 문제를 해결했다. 근데 이번에 새로운 문제가 나타남. 페이징처리는 되는데 질문목록이 나오지가 않았다. 1. 오타없음 2. 모델에 데이터가 잘 들어갔는지 확인 첨에 데이터가 모델로 모두 잘 들어갔지만,
페어프로그래밍하면서 내가 도움이 되는 게 없는거 같아 넘 좌절스러웠는데, 오늘 내 페어가 뭔가 안된다고 디엠이 와서..이번껀 내가 꼭 기필코 해결해서 돕고 말겠다는 심정으로 어떤 문제인지 알아보려고 했다. 답변하기 눌렀을때 전체 새로고침없이 등록되어 보였던게 안보인다
실습으로 배우는 AWS 핵심 서비스를 통해서 AWS 배우고 있다.AWS 에서 제공하는 주요 서비스들 IAM, S3, EC2, VPC, RDS를 알아보고 실습하는 과정이다.어제부터 시작해서 오늘까지해서 IAM까지 배웠고, 일요일, 월요일 활용해 총 335분 강의 나머지
오늘은 AWS 서비스들 중 S3에 대해서 배웠다.S3는 클라우드 파일 저장소라고 보면된다. 이미지나 영상 등을 여기에 업로드하고 웹서비스를 운영할때 S3에서 파일을 불러오는 식으로 이용할 수 있는듯한다.접근권한도 줄 수 있다.S3로 정적 웹페이지도 서비스할 수 있는데,
어젠 S3 배우고, 오늘은 EC2와 VPC에 대해서 배웠다.EC2는 컴퓨팅에 해당된다.EC2 관련 서비스들을 실습해보며 배웠는데, 내가 뭘 하고있는건지 솔직히 잘 모르겠다.VPC는 네트워크에 해당되는 서비스.그외에 CIDR 표기법이라던가 서브넷이라던가 라우팅 테이블이라
오늘부터 3개월 간 2주 3개 3주 2개 총 5개 프로젝트를 진행한다.처음에 IOS와 어떻게 협업하는거지? 생각했다.다행히도 그 의문은 코쿼에서 제대로 학습을 안내해주셔서 해결됐다.이런식으로 의문이 풀렸다.기획서를 보면 어플리케이션이 어떤 동작을하고 UI는 어떻게 되는
카드들을 어떤식으로 데이터 처리를 할건지 상의함.레포.findAll() 로 모든 카드를 Iterable에 담는다.담은 카드들을 CardList라는 카드들을 관리하는 클래스에 아규먼트로 넣어준다CardList 생성자에서 divde()라는 내부메서드를 이용해 카드들을 st
프로젝트 구현, 협업 배운점
오늘도 Vim!첨에 vim에 대해서 간단하게 배웠을 때 이런 옛날 프로그램이 요즘나오는 gui 텍스트 편집기보다 훨씬 좋다는 느낌을 확받고 잘 익혀봐야겠다는 생각을하며 많이 연습을 했었다.유튜브에서 코드작성을 위해 사용하는 목적이 아니라, 블로그 포스트할때도 vim을
연결/인증Connection, 문장실행Statement, 결과패치ResultSet등을 하는 기능을 DB Client 프로그램(mysql 워크벤치 등)을 통해서 할 수 있음.사용자가 데이터베이스를 이용하기 위해서는 개발자가 만든 코드에서 데이터베이스를 이용할 수 있게 해
insert할때는 select할때와 좀 다른부분이 있다slect가 아닐땐 결과집합이 없다select문장은 쿼리를 이용해서 결과집합 유저셋을 얻는다.다시 말하면, 결과집합이 있는 셀렉트를 실행할때는 유저셋을 반환하는 쿼리를 사용한다.인서트, 업데이트, 딜리트 등 조작할때
이 부분이 오늘의 하이라이트였다.코코가 처음에 제시한건 생성 된 카드마다 order 라는 컬럼을 주고 만약에 카드를 order가 1과 2인 카드 사이에 넣는다면 1.5 라고 설정해주는 식이었다. 그러면, 1과 1.5 사이에 넣는다면 1.25가 된다.하지만 그 이야기를
어제에 이어서 카드들 사이에 옮기거나 했을 때 순서를 어떻게 만들것인가에 대한 고민을 쭉 코코와 같이 했다.첫번째로 생각했던것은 일단 position 이라는 컬럼을 만들고 모든 Card에 포지션이 바뀔때마다 포지션을 업데이트 해주는 방식이지만, 하나 바뀔때마다 전부 업
클라이언트쪽으로 Response 넘겨줄때 클라이언트쪽에서 사용을 하든 안하든 객체를 넘겨준다. 암것도 안넘겨줘도 되지않나? 혹시나 그쪽에서 사용할지도 모르니까 그냥 넘긴다. 아까 코코와 K에게 물어보고 분명히 이해했다고 생각했는데 음 뭔가 알쏭달쏭하다.백엔드의 역할?
드래그앤드랍, 카드 옮기는 거 어떻게 구현할지 코드로 좀 해봤다.그냥 쉽게 생각해보면, 카드가 옮겨졌을 때 request에 카드의 id(카드 고유번호), from(어디에서 오는건지), to(어디로 가는건지), position(컬럼내의 포지션) 의 정보가 필요하다 생각했
벨로그에 있는 글을 Github pages로 옮기려던 중에,그 많은 글들을 어떻게 가져올까 생각해봄.그런 생각 중에 생활코딩에서 우연히 "보편적이지 않은 코딩"이라는 항목으로웹페이지에서 원하는 항목을 추출하는 튜토리얼을 봤음 링크이 튜토리얼에서 알려주는건 php를 이용
어제하던거에 이어서 본격적으로 파일로 만들어보기로 함.먼저 지정된 날짜부터 지정된 날짜까지 순서대로 추출하는거기때문에날짜데이터를 사용할수있는 LocalDateTime 를 가져옴.of() 로 기준 날짜를 정해주고plusDays() 로 원하는 일수만큼 더하는 메서드를 이용
지난 주말 JDBC 학습에 이서어 이번 주말도 JDBC 배워봤다.지난번에는 디비에 연결하고 쿼리문 넣어보고 하는 시간을 가져봤고,이번엔 지금까지 스프링으로 해보았던 CRUD를 순수 JDBC로 해봤다.예제로 한건 게시판 예제이다. 먼저 스프링이랑 똑같이 entity 객체
두번째 프로젝트가 시작이다!잘 모르니까, 혹은 자신이 없어서 내 주장을 적극적으로 펼친적이 없어서페어로 하는 지난 4주 동안 거의 음 상대방한테 거의 가르침받는 수준으로 코딩을 한것 같다그래서 혼자 전부 도맡아서 프로젝트를 해보고 싶었고, 호눅스께 이번 프로젝트는 혼자
반찬 웹 어플리케이션 구현을 위한 시도들
JSON 데이터를 Response 해줄 때 배열은 어떻게 해줘야할까?예를 들어서, 특정 Request가 오면 다음과 같은 JSON 데이터를 Response 하고싶다고 생각해보자.첨에 생각 했던 건 그냥 Entity 객체 내에 String\[] favorite_food
JSON Response시 Null처리, 상세데이터 만들기, 그 외 자잘하게 맞닦뜨린 문제들 정리
특정 카테고리를 불러오는 API 를 구현할 때 카테고리 안에 카테고리에 따른 반찬리스트가 담겨져있기 때문에,Category Entity 내에 List<Banchan> items 형태로 필드를 추가하고 그것을 response하는 형식으로 할려고 했다.Entity 내
status 200이 여기에있는거면, 이면 Http 응답이 정상적으로 됐다는걸 데이터에 같이 담아서 response 하라는 말로 이해했다.이건 어떻게 보내야하는 걸까..고민하다가, 지난 프로젝트 때, 백엔드 짝 코코가 컨트롤러에서 객체가 아니라 ResponseEntit
오늘은 서블릿에 대해서 배워봄.서블릿이란 웹이라는 환경을 통해서 실행되어지는 웹 서버 어플리케이션을 이루는 작은 하나의 단위라고 할 수 있다.그러니까 그 작은 단위들이 모여서 하나의 웹 서버 어플리케이션을 이루는 것이다.예를 들어서 사용자가 웹에서 http:/
점점 api가 전부 완성 되어가고 있다. 오늘은 main, soup, side에 따라서 데이터를 불러오는 api를 만들었다.이걸 위해서 best 카테고리에서 카테고리 아이디를 사용하는 것처럼 main, soup, side에도 특정 카테고리 아이디를 넣어주고 불러올때 그
김영한님의 스프링 입문을 들어봤다.사실 스프링을 시작하기 전에 배우려고 강의를 들었을 땐 전혀 무슨 말인지 이해가 안갔는데, 지금 조금 스프링 부트를 접하고 나니까 이해가 간다.가령, 웹클라이언트와 동작할 때,정적 컨텐츠를 그대로 응답한다.MVC패턴과 템플릿엔진을 이용
EC2 인스턴스 생성하고 우분투에 mysql 설치까진 문제가 거의 없었다.로컬에있는 mysql워크벤치로 SSH 통해서 접속하려고 하는데 계속 실패했다.aws 보안 설정에 잘못이있는건지 mysql 서버 버전도 바꿔보고 워크벤치도 버전별로 바꿔보고 엄청 많이 시도해본결과
요구사항에 Ngnix에 프론트를 두고 Tomcat을 백에 둬라는 말이 잘 이해가 안갔었지만,,나름 뇌피셜로 멘탈 힘듦을 줄였다먼저, Ngnix와 Tomcat을 나누는 이유는..아직까진 잘모르겠다. 리액트 웹 어플리케이션이 스프링부트와 같이 동작하려면 서버를 분리할 수
오늘은 두번째 프로젝트 데모데이 aka 프로젝트 마지막 날기본적인 API들은 어떻게 잘 구현을 해서 나름 만족스러웠는데 깃헙 Oauth 라던가 백엔드의 요구사항이었던 프론트단과 백단의 서버를 따로 두고 연동하는 것을 못해서 아쉬웠다. 그래서 일단은 프론트단에 Nginx
담주 미션은 JdbcTemplate으로 한다길래 이게 뭔지 간략하게 알아봄스프링은 JdbcTemplate 템플릿 클래스를 제공한다. JdbcTemplate은 관계형 데이터베이스 SQL과 JDBC의 작동을 쉽게 해준다.대부분의 raw JDBC 코드는 커넥션, statem
트랜잭션이 도대체 뭐지?하고 찾는 도중에 이미 여기에 정리 해놓았었다. 어떻게 한달밖에 안됐는데 새까맣게 잊어버릴 수 있을까?어쨋든, 다시 정리한거 보면서 복습하는데 이론적으로는 무슨 말인지는 알겠는데 실제 코드로 어떻게 동작하는지는 아직도 잘 모르겠더라.먼저 첫번쨰로
코드스쿼드 세번째 프로젝트가 시작하는 날.iOS의 민, 에이든 백엔드는 트리랑 나. 먼저 일반적인 룰부터 정하기로 함. 회의 규칙이라던지, 깃헙을 어떻게 할용할 것인가 등.근데 막상 이런 일반적인 룰들은 앞서 했던 첫번째, 두번째 프로젝트에서 틀이 거의 갖추어져 있는
slf4j : The Simple Logging Facade for Java자바에는 여러가지 로깅 프레임워크이가 있는데 예를 들어 log4j나 logback 같은게 있는데 각 프레임워크마다 로깅하는 방식이 다르다. 다른 로깅 라이브러리로 변경하려면 코드를 변경해야하는데
참조 무결성..말 참 어렵고 어려운 개념처럼 보인다.그냥 영어 직역으로 보니까 더 이해가 빠르다.Referential Integrity.네이버 사전의 의미를 가져오면참조의 완전한 상태온전함 으로 해석이 된다.훨씬 이해하기 쉬운듯.그리고 위키피디아에서 설명하고 있는 예제
오늘은 팀원인 Tree와 함께 DTO에 관한 이야기한 것을 정리하고 싶다. 이번 프로젝트를 진행하면서 Tree가 제안한 DTO설계는 이런식이다. 내가 이전 프로젝트에서 DTO를 학습하고 적용시켰던 DTO의 형태는 아래와 같다. 둘의 차이점은? Tree가 제안
오늘은 너무 정신 없이 하루가 흘러갔다.10시 ~ 10시 40분까지 팀1,2와 즐거운 대화3시까지 Mock API를 만드려고 고군분투팀데모땜에 3시부터 README 작성3시40분부터 다시 MOCK API에 집중먼저 iOS 분들에게 Mock API를 빨리 전달해줘야겠다고
Mock API를 클라이언트에서 실험으로 사용할 수 있는 API를 제공하는 것으로만 이해했다.그런 의미에서 aws ec2에 구체적인 로직은 들어가지 않았지만 어쨋든 data를 반환하는 서버를 배포하는 것이 mock api를 클라이언트에게 준다는 개념으로 생각했다.그런데
AWS에서 제공 하는 서비스들 중에 VPC는 Virtual Private Cloud의 약자이다.EC2의 네트워크 계층을 의미하며 많은 다른 AWS 서비스들도 VPC를 통해 네트워크에 연결된다.VPC를 더 작은 범위로 나누면 서브넷이 된다.이때, EC2는 서브넷으로 연결
코쿼 호눅스로부터 AWS S3에 빌드파일을 올리고 EC2에 자동 배포/연결 하는 방법을 배움서로 같은 코드인데 런타임 에러 발생 해결 (대소문자 문제) w/ Dr. Pyro, Dr. Robin그에 따른 문제 접근 방법 & 파이로가 소개해준 웹 디비 도구 (mysql,
BallCount 생성 못하는 문제 해결Sbo 랜덤으로 가져오기ballCount 코드작성자동 배포스크립트 (crontab, 쉘스크립트 이용)트리와 아침에 더 많은 이야기를 나눔👍서로 소통이 잘된다고 느껴서 좋았음👍일에 대한 이해가 안맞으면 그렇게 강조하는 소통은 의
VPC는 AWS서비스에서 제공하는 전용 가상 네트워크 계층이다 서브넷은 VPC의 IP 주소 범위이다. VPC가 AWS의 네트워크 계층이라는 말은 AWS라는 클라우드에서 VPC는 다른 가상 네트워크와 분리되어있다는 말이다. EC2 인스턴스 같은 AWS 리소스는 그림처
Ngnix 설치하고 설정파일에서 포트포워딩을 해주는 설정을 하는데,이때 잘 작성해줘야한다.자세한 과정은 동 Velog에서 확인 가능.내가 이전 프로젝트에서 Ngnix를 애먹었던 건 인터넷에 돌아다니는 Ngnix 관련 설정파일을 그대로 가져다 썼는데 작동하지 않았던 게
세번쨰 프로젝트가 끝났다!이번 프로젝트는 좀 더 복잡한 디비 구조를 가지는 API 설계를 요구하는 야구게임 만들기.이번에 목표는 사실 API를 어떻게 만들거냐 배포를 어떻게 할거냐 그런 것들도 중요하지만 팀원과 협업하는 힘을 기르는 것에 초점을 두기로 했다.디온은 심지
저번에 프로젝트에서 Oauth 구현을 실패하고,,다음 프로젝트에서는 꼭 구현하리라는 다짐과 함께 생활코딩에서 Oauth 수업을 듣고 정리 해봄.Oauth는 나의 서비스, 사용자 그리고 연동하려는 서비스가 서로 편리하게 신뢰할 수 있는 어떤 하나의 기능(?) 혹은 장치이
오늘은 자바스크립트에 대해서 배워봄.웹페이지를 동적으로 만들어주는 프로그래밍 언어이다.단순히 웹페이지가 가만히 앉아서 보여주는 static page가 아니라, 웹에서 사용자와 상호작용하기 위해서 만들어진 언어이다.정적페이지(static page)라는 건 페이지에 단순히
Data Access Object. 데이터베이스의 데이터에 접근하기 위해 생성하는 객체. Entity는 테이블과 1:1 매칭되는 객체.DAO는 직접적으로 데이터를 읽고 쓰는 등 디비와 상호작용이 일어나는 객체. Spring Boot에서는 Repository가 이를 대신
이전 프로젝트에서 API 명세서의 주소들이 localhost로 만들었었다. 그런데 이렇게 만들면 단순히 API가 어떻게 이루어져있는데 정보만 전달하는 것 같아서 서버측에서 배포하지 않아도 클라이언트가 직접 이용할 수 있는 목서버를 만들고 싶었다.포스트맨에 왼쪽 탭에 보
프로젝트 시작하기 전에 Oauth 구현하고 싶어서 예제 프로젝트를 하나 만들어서 Github Oauth를 연동해봤다.처음에는 요구사항을 참고해서 다음과 같은 to-do 목록을 만들고 Oauth 구현을 해보기로 했다.Client id, secret 생성자바에서 어떻게 적
access token 까지는 받았다!그러면 이걸 가지고 어떻게 Github API를 호출할 수 있을까?Github Docs에서 보면 아래 사진 처럼 나와있다.근데 이렇게 하려면 you can set the Authorization header like this: 부분
어제 이야기한것 까지만 목 API를 만들어보려다가 Entity 생성하는 것에서 부터 막혔었다.그래서 2시에 회의하기로 했던 것을 일찍이 스크럼 마치고 바로 이야기를 나눴다.어제처럼 기획서 분석한 문서를 토대로 한 부분씩 서로 확인하고 지속적인 의견 교환으로 최종적으로
Node.js 는 2008년 구글이 크롬에서 자바스크립트 성능 개선을 위해 크롬 v8을 공개했는데, 제작자가 그것을 가지고 자바스크립트를 이용해서 웹브라우저가 아닌 컴퓨터 자체를 제어하는 자바스크립트 런타임이다.Nodejs는 유저의 입력값을 받아 메모리에 저장하고 입력
Node.js Node.js에서 URL의 쿼리스트링 사용하기 쿼리스트링이란 저 네모 부분을 말한다. Node.js에서 쿼리스트링에 따라서 동적으로 웹페이지를 작동하게 하려면 어떻게 해야할까? 실습을 위해 생활 코딩의 코드를 가져온다. 먼저 id값에서 그 값이 무
이전 5월 21일 TIL에서 DAO 안에서 Entity를 DTO로 변환해주는 작업을 해서 거슬린다고 했다. 그래서 바로 그것부터 수정했다. 예전에 리뷰어님이 DTO/Entity를 어디에 사용하냐에 집중하기보다 그 두개를 철저히 분리하는 연습을 해라고 했었다. 아무리 생
오늘은 Lambda와 Stream에 대해서 배웠다.항상 미루고 미루고 미루다 오늘은 해야할때라고 생각했다.왜냐면 Entity/DTO 두 객체간의 타입을 바꿔줄때마다 Stream이 필요하기 때문이었다.처음 이 문제를 겪은건 지지난 sidedish 프로젝트 때이다.예시를
객체지향에 대해서 사실 예전에 쓴 글이 있긴 하다..객체지향을 이해하기 위해 애썼던 첫 발걸음?20210327 TIL 객체지향오늘은 세번째로 객체지향에 대해서 써보는거네?그런데도 아직 명확히 아! 이게 객체지향이지! 라고 다가오진 않는다..사실 이전에 썼던 것들을 확인
User의 속성값으로있는 위시리스트에 새로 들어오는 hotel_id값을 추가하기위해서원래 가지고 있던 User의 String wishList을 List으로 먼저 변환해주고,새로들어오는 hotel_id값을 그 리스트에 add(hotel_id)한다.다시 그 리스트를 Str
오늘은 한주를 마무리하면 회고해보는 시간을 가짐.다른 팀에서 발표한 것중에는 깃헙액션을 이용해서 뭔가 자동화하려는 노력들이 흥미로웠고 나도 얼른 따라해보고싶었음.그리고 노을이 보여준 검색어에 따라서 포함되는 글자들 모두 보여주는거..그런 걸 뭐라했는지 생각이 안난다 ㅠ
어제부터 Elasticsearch가 배우고 싶었다.엘라스틱서치를 찾아보면 항상 루씬이라는 키워드와 같이 나온다.루씬을 먼저 찾아보기로 했다.루씬을 찾아보니 full-text search라는 키워드가 나온다.full-text search는 웹이나 데이터베이스를 검색하는
루씬은 어플리케이션이나 웹사이트에 검색기능을 쉽게 만들수잇는 자바로 만들어진 full-text search 라이브러리이다. full-tet index에 content를 추가하는 방식으로 루씬은 작동한다. 그리고 인덱스를 가지고 쿼리를 실행해서 정렬된 결과를 반환한다.
ORM이 뭔지 쉽게 이해되는 블로그 포스트가 있었다.영어공부할겸 오늘은 이걸 번역하면서 ORM을 배워보는 시간을 가져보기로 했다.원문: https://blog.bitsrc.io/what-is-an-orm-and-why-you-should-use-it-b2b6f
링크드 리스트는 품목들의 컬렉션을 보관하기 위한 데이터 구조이다.예를 들어서, 아래와 같이 int 가 담긴 연결된 박스가 있다고 가정하자.그리고 이 박스를 자바 코드로 구현하면 아래와 같을 것이다.(1) - 박스안에 Int가 들어가든 String이 들어가든 객체가 들어
SQL의 기본 명려은 선언적 명령이다 → How가 아니라 What에 해당한다.디비에서 절차적 명령을 수행하기 위해서는 스토어드 프로그램을 사용해야 한다.자바 코드 짜듯이 메서드를 짜서 디비에 저장한다고 생각하면 된다.디비에 프로그램을 저장하기 때문에 응용 프로그램의 성
1줄 요약코드스쿼드 선배님 브라이언의 강의를 내 생각을 곁들여 정리한 글취업이야기 프레젠테이션 첫번째 슬라이드에서 어떻게 살것인가? 라는 토픽이 나왔다. 내심 놀랐다. 보통 이런 이야기하는 다른 사람들보다 되게 근본적인 이야기 부터 시작했기 때문이다. 왜 이 물음을
1줄 요약처음으로 면접을 봤다.저번에 "코드스쿼드 선배님들과의 시간"에서 취업이야기만 2시간 가량 들으면서 되게 생각이 많아지면서 잠도 제대로 못잤다.그러면서 내가 어느정도 선상에 있을까 스스로 느끼고 싶어서 굉장히 짧은 이력서이지만 프로그래머스에서 몇군데 지원했다.다
알고리즘을 풀고 싶은데 자료구조를 먼저 공부해야할거 같다. 지난번에 Linked List에 이어서 Big O 표기법, 시간복잡도를 배워보기로 했다. 시간복잡도는 한국어로하든 영어로하든 딱 들었을 때 너무 추상적이고 어렵게 들린다.단어에서 풍기는 분위기로 배우는 게 아니
1줄 요약면접관님의 제안으로 개발공부하면서 처음으로 알고리즘/프로그래밍 문제를 하루종일 해봄.https://github.com/kyu-kim-kr/programmers알고리즘 문제도 있는고 구현 문제도 있었던거 같다.사실 어떤 종류의 알고리즘인진 잘 모르겠다.
1줄 요약마지막 프로젝트인 만큼 목표를 정하고 집중해서 성과를 낼 수 있도록 노력하자1월 4일부터 시작했던 코드스쿼드 마스터즈 과정이 이제 막바지로 다달았습니다. 지난 프로젝트 까지 열심히 안한 것은 아니지만 혼자서 하다보니 조금 늘어지는 경향이 없지 않아 있어서 다음
1줄 요약이렇게 하루종일 떠들어보긴 처음이다오늘은 일과가 시작하는 오전 10시부터 방금 전 오후 7시까지 밥먹는 시간 빼고 계속 회의하고 설명하면서 입을 쉴새없이 떠들어댄 날이었습니다. 먼저 오전에 팀원들과 회의를 할 때는 어제 MJ와 이야기한 것을 토대로 전달사항이
오늘은 Github Oauth 구현하는 것에 시간을 많이 사용했습니다.Oauth를 구현할 때 서버기반의 토큰 기반 인증을 사용합니다. 먼저, 클라이언트에서 서버로 웹페이지를 요청하면 서버에서는 웹사이트를 제공합니다. 그리고 로그인 요청하면 서버에서 내부적으로 토큰을
오늘은 Oauth 통한 JWT 발급 그리고 Interceptor 구현하는 것 까지 MJ로부터 1:1 가르침을 받았어요. MJ에게 정말 감사하다는 말씀을 드립니다🙏배운 것을 간략하게 정리하자면 이렇습니다.org.springframework.http.\*에서 제공하는 R
지난 프로젝트에 비해서 이번주는 시간을 집중적으로 잘 사용한 것 같아요. 혼자하면 넘 자유로워서 시간을 멋대로 쓰고 느슨하게하고 그러는 편인데 팀원이 있으니까 확실히 집중할 수 있었어요. 특히 이번주가 그랬는데요. 이번주에는 딱히 분업을 할필요가 없는 작업이라고
save할때 SimpleJdbcInsert 쓰는 점RowMapper를 Repository클래스 내에 쓰는 점DataSource 필드에 선언안하는 점delete 쿼리가 들어갈때 삭제가 되고 boolean 값 리턴Mockito으로 user를 리턴서비스 메서드를 이용해서 u
https://youtu.be/dlChXjE7IHw 엘라스틱서치 설치, 실행, 스프링부트 이용해서 데이터 저장, 검색 배움https://youtu.be/lt6oPHjZMXg curl을 이용해서 CRUD하는 법을 배움https://velog.i
Redis에 대해서 호눅스로부터 배움. 인메모리 디비, 캐시가 뭔지 이해하는 게 핵심. 수업정리블로그에서 로드밸런서의 개념에 대해 배움inner outer join에 대해서 배움 사진
컬렉션과 제너릭 강의들을 보면서 다시 해당 개념에 대한 학습컬렉션은 기본적으로 어떻게 이루어져있는지 이어서 제너릭이 왜 필요한지 제대로 알려줘서 좋았다.
작년 11월 부터 내일 6월 17일까지 하면 드뎌 뉴질생활이 끝난다!매일 같은 장소에서 온라인으로만 얼굴을 보며 공부하는 것은 너무 지겹다..ㅠㅠ 항상 온라인에서 느껴오던 다른 동료분들의 열정을 얼른 오프라인으로 느껴보고싶다.여기있는동안 보고 싶은 책은 구매할 여건이
서버 나눌떄 프라이빗 서버에 22 포트열면안된다. 엔드포인트는 최소한으로 해야한다.aws s3 할때 aws configure 잊지말고 해야한다.Spring Data JDBC - Many to Many 유튭 다운로드해서 보기.분석해서 정리하기.팀프로젝트에 어떻게 적용할지
오늘 한 일 https://youtu.be/5rqlqon8xko 를 보고 many to many 관걔를 JDBC로 하는 법을 배움. 첨엔 다대다를 어떻게 save를 어떻게할지 고민이 되어 봤는데 별로 힌트는 못얻음
어떻게 그리고 왜 테스트를 하는게 좋은지 배워봄 링크왜 테스트를 해야할까?그냥 스프링 부트에서 항상 테스트 Junit, mockito 를 디펜던시에 디폴트로 넣는거보면 정말 중요하다는 걸 반증하기 때문,,테스트로 자신감을 얻을수있고 프로덕트 코드를 깔끔하게 작성할 수
이유는 모르겠지만 스프링부트를 실행할 때 갑자기 InetAddress.getLocalHost().getHostName() 가 를 느리게 리스폰스하는 이슈..https://github.com/kyu-kim-kr/issue-tracker/issues/56JWT를
inverted index\-> RDBMS는 row를 기준으로 index를 만들지만, inverted index는 책맨뒤에 있는 단어 기준으로 정렬된 인덱스처럼 단어마다 도큐먼트가 매칭되어진 index를 inverted index라고 한다TF / IDF\-> 문서에 검
파이로와 아침 스크럼시간에 내가 만들고 싶었던 크롬 익스텐션에 대해서 이야기를 나눴다. 첨에 혼자 구현해보려다가 어떻게할지 감이안잡혀 여럿분들에게 여쭤봤는데 파이로가 특히 적극적으로 맘에 든다고 같이 하자고 했음! 넘 기분 좋다!로그인 DB 중복 데이터 검사 로직하는
web은 oauth 로그인이 되는데 ios만 안되서 해결방법을 어제부터 계속 찾다가 해결 했다.계속해서 401 Credentials 에러가 났다.테스트해보니 이 에러는 로그인할때 들어오는 파라미터 값들 이를테면 client_id, client_secret, code 가
클라이언트단에서는 이미지 업로드할때 파일을 선택해서 POST 로 요청만 서버로 보내주면 된다.그러니까 서버에서는 잘 받아서 파일을 저장할 서버에 잘 저장하고 그 url을 응답하면 된다.s3를 사용해서 하기로했다.찾아보니 spring-cloud-starter-aws를 디
오늘 한 일 이어몬과 열심히 로그인이 안되는 원인을 찾아다녔다, 파이로도 거들어주셔서 감사했다. MJ와의 마지막 협업날..ㅠㅠ 오늘도 MJ는 나에게 커다란 지식을 안겨주었따. 이번팀원들과 깔끔한 마무리를 위해서 다음주까지 프로젝트를 연장하기로 이야기를 나눴다.
공부해야할거 정리 스프링입믄 강의 / 스프링 기본 강의
스프링 옵셔널에서 get으로 꺼내는건 좋지 않다 get꺼내면서 orElseThrow 로 쓰로우하던지 아니면 ifPresent(m -> {throw new Exception}) 이런식으로..후자를 많이 쓰는듯?인텔리제이 cmd + shit + T 누르면 테스트 자동으로
- **[General]** 코드스쿼드에서 마지막 3주짜리 프로젝트를 팀원끼리 상의해서 1주 더 연장하기로 하고 오늘 첫회의를 함 - **[Route 53]** 도메인을 하나 사고, Route 53 을 통해서 내 인스턴스와 연결 시켜줬다. - **[Route 53]*
[스프링] 스프링 빈과 의존관계에 대해 학습 [링크](https://github.com/kyupid/study/blob/17b2fc5468b778e21cca657bce6aa8dab77b7967/%EC%9D%B8%ED%94%84%EB%9F%B0/%EA%B9%80%EC%9
스프링 컴포넌트 스캔을 통해서가 아니라 클래스 위에 @Configuration을 붙이면 컨테이너에 빈을 등록할수있다는걸 알았다. 스프링배우면서 예제에 참 많이 나왔는데 이제 이해했다.(정리 링크)스프링 MVC패턴으로 만들떄 컨트롤러에서 매핑되어 부르는(return) h
오늘 한 일 / 배운 일 [SQL] INT 컬럼에 원래 있던 값을 어떻게 1씩 증가시키지 하고 검색했는데 그냥 일반적인 프로그래밍 문법이랑 똑같았다. UPDATE sample SET columnname = columnname + 1 [프로젝트] 이모지 구현하는거 어제
프로젝트 파이로와 새롭게 시작하기로 한 Highligher 프로젝트에 관한 회의를 했다. 아직 깊은 이야기를 나누지 않았었는데도 오늘 파이로가 적극적으로 데모를 하나 가져오셔서 작동하는 무언가를 볼 수 있었다! 파이로가 본격적으로 크롬 익스텐션을 만들기전에 백엔드 서버
오늘 한 일 / 배운 일 [프로젝트] 코쿼 마지막 플젝 이슈트래커가 마무리되고, 슬랙으로 모두에게 결과물을 공유했다. 이렇게 하니까 확실히 프로젝트를 마무리했다는 느낌을 받을 수 있었다! 뭐든지간에 성취했다는 것을 느끼는 게 중요하다고 생각하기 떄문에 공유하는 경험이
스프링 복습. 순수 JDBC와 JdbcTemplate을 활용해서 CRUD하는 실습을 하면서 데이터베이스와 통신할 때 코드가 점점 축소되는 것을 몸소 배움. JPA 기술은 CRUD나 기본적인 SQL문을 아얘 줄여줌.
SQL 첫걸음 오프셋으로 페이지네이션하는 할때 어떻게 해야하는지 배웠다. LIMIT 5 OFFSET 5 라고 하면 시작점을 5로 두고 5개의 제한된 ROW를 부른다.112pSQL 첫걸음 셀렉트 문에 식을 넣을 수 있다. 가끔 어떻게 완성해야할지 모르는 SQL문들을 검색
SQL 첫걸음 CURRENT_TIMESTAMP에서 기간형(interval) 데이터에 대해서 배움.데이터 변환해서 출력할때쓰는 CASE문에 대해서 배움.물리삭제와 논리삭제라는 개념에 대해서 배움. 논리삭제는 주로 그 데이터가 삭제가 되도 의미있는 데이터로 뽑아 낼 수 있
스프링 JPA, Spring Data JPA, AOP에 대해서 배움. https://github.com/kyupid/study/commit/7a49bb17df07de84de2cef5654deb3d9108968de
오늘 한 일 / 배운 일 1. 프로그래머스 코테 연습 찾아라 프로그래밍 마에스터: 답이 안나와서 찾아보긴했는데 그런식으로 어떻게 생각해내는거지..답을 알고나서도 계속해서 생각해봤어야했다. DP 동적 계획법. 자주 나오는데 설명해주는건 알아먹겠는데 어떻게 적용해야할까?
오늘 한 일 / 배운 일 [AI 역량검사] 기업에서 요구해서 AI 역량검사하기 전에 1시간동안 익숙해지는 시간을 가졌다. 카메라보고 자기소개도 하고 순발력, 기억력, 추리력 테스트 등이 있었다. [영어] 뭔가 진행중이라는 것에 여러 표현에 대해서 배웠다. in the
\[도커 컨테이너] 도커에 대해서 알고 싶어서 도서관에 빌려서 100페이지 정도 봤다. 근데 그 중 한 40~50페이지는 리눅스 배포판 외에 페도라 RHEL에서 환경 구현하는 방법이라 다 스킵하니 페이지가 금방 넘어갔다. 27000원은 좀..비싸지 않나?
프로그래머스 백엔드 데브코스 코딩테스트가 있던 날이었다! 3시간이 주어졌고 아주아주 기초적인 HTML에 관한 객관식 10문제와 코딩테스트 3문제가 나왔다. 1,2번 문제는 알고리즘 평소에 전혀 안푸는 나도 풀수있는 수준이었고, 3번 문제는 2시간 넘게 매달렸지만 끝내
1번 회사 면접 1번 회사에서는 30분간 테스트를 봤다. 기본적인 알고리즘/자료구조/자바/스프링에 관한 문제가 나왔다. 면접관님은 ㅂㄹ였다. 특히 젤 맘에 안들었던건 원하는 원봉을 말하래서 말했다. 그런데 혹시 이 연봉 아니면 회사에 입사못하겠다 싶은 연봉을 다시 말해
오늘 너무 첫 회사에 합격하구 정말 정신이 없었다. ㅜㅜ 첨에 면접 보고 나와서 너무너무 행복해서 눈물이 또르륵..ㅋㅋㅋㅋ 가족들한테도 다 말하구 코드스쿼드 백엔드분들에게도 말하구...넘 기분 좋은 하루였다. 워홀 다니면서 여러 곳에서 일을 했지만서도 이번이 특별한것은
영어스터디 에서 비비와 1시간정도 열심히 공부했다. 기억에 남는건 cut somebody some slack 그냥 봐줄게~ 할때 그 봐준다는 뜻으로 쓰임. 프로그래머스 데브코스 에서 1차 서류와 2차 코딩테스트를 통과했다고 메일이 왔다, 줌으로 일대다로 면접을 본다고
스프링 핵심원리 - 좋은 객체 지향 프로그래밍이란? 에서 5분정도 강의를 봤다. 그 뿐이다.
PHP PHP에 대해서 간략하게 배웠다. PHP의 약자는 처음에 Personal Home Page Tools 라는 의미로 유추할수 있듯이 간단히 개신 홈페이지를 만드는 툴로써의 언어로 자리 잡았다. 나중에는 PHP: Hypertext Preprocessor 라는 의미로
HTTP의 비연결성 특징에 대해서 배움.
오늘 한 일 / 배운 일 php 문법 대해서 배움 정리 링크 참고 링크
SFTP란? https://www.notion.so/SFTP-c9ebe627e06543ad867aee60ae3464dfPHP 변수, 함수명에 언더바는 왜붙이냐? https://www.notion.so/\_-31c39317a6cd49f1a4733c274
아파치-PHP 연동 https://www.notion.so/php-cfc7801548194b869f541d33b7e302e4PHP GET으로 파라미터 넘기기 https://toothsome-root-dfe.notion.site/GET-if-id-a3a
php 연관배열CI의 MVC 규칙php - stripos() 의 리턴값은 자바처럼 int이거나 NULL 이아니라 int이거나 falseextract(배열) 은 연관배열의 키값을 변수로 만들어준다.RESTful API 에서 GET / POST 가 아니라 일반적으로 GET
PDO(PHP Data Objects)란 여러가지 데이터베이스를 제어하는 방법을 표준화시킨 것이다.php implode('문자열', 배열) 배열 사이에 '문자열'을 넣어서 하나의 문자열로 만든다<input type="hidden"> form 작성할떄 사용자가 안보
SOLID 원칙에 대해서 간략하게 배워봄. 이건 글로 읽는게 이해가 안간다. 예를들어서 ISP 인터페이스 분리 원칙에서 하나의 일반적인 인터페이스보다 여러개의 구체적인 인터페이스가 더 났다는데...무슨말인지...하나의 예시를 든거고 단일책임원칙 빼고는 모두 이런식으로
스프링 핵심 원리 - 기본편 객체지향 설계와 스프링 예제만들기 초입부분
회사에서 php를 사용해서 집에서 연습좀 해보려고 맥에 환경을 구성해보려 했는데 이런저런 난관에 많이 부딪침.. 일명 LEMP (Linux + Engnix + MySQL(Maria DB) + PHP) 를 구축해보려고 했는데..구글에 나오는 블로그대로 하니까 잘 안되더라
회원 도메인 설계의 문제점다른 저장소로 변경할 때 OCP 원칙?DIP를 잘 지키고 있을까?의존관계가 인터페이스 뿐만 아니라 구현까지 모두 의존하는 문제점이 있음라는 말이 무슨 말일까.. 잘 와닿지 않는다.김영한 - 스프링 기본https://github.com/
TCP/IP는 4계층으로 나뉘어져있다. 어플리케이션, 트랜스포트, 네트워크, 링크 계층으로.스프링 핵심원리 주문할인 도메인 설계와 개발 보고 따라함
IP와 IP 주소는 다르다. IP는 프로토콜의 명칭이다. IP의 역할은 개개의 패킷을 상대방에게 전달하는 거고 전달하기까지 여러가지 요소가 필요하다. 그중에서 IP주소와 MAC주소라는 요소가 중요하다.IP주소는 MAC주소에 의존적이고, 송신측에서 특정 IP 주소에 패킷
책에서 쿼리스트링을 엔티티라고 부르는걸 보니 엔티티라는 것은 어떤 상태값들을 담은 하나의 객체를 여러 필드에 걸쳐서 사용되는 하나의 용어인거 같다. 디비 설계할때 개념적설계 단계에서도 엔티티를 뽑아낸다는 말을 쓰기도하니까 말이다php VS node.js 차이 https
오늘은 어드민페이지 수정하느라 자바스크립트를 배우는 시간을...전혀 모르던 자바스크립트랑 php도 익숙해지는거 같다. 근데 익숙해지면 익숙해질수록 자바가 그리워지네..오늘도 아침에 김영한님 강의를 들었다.객체지향 5대원칙 코드로 설명해주시면서 자세히 알려주시는데 이해가
그림으로 배우는 Http..HTTP 메소드까지 50페이지 정두? 읽었는데 내일 전부 다읽는걸 목표로하자!로치, 파이로와 만나서 앞으로 내가 어떤식으로 공부해야할지 꿀조언을 들었다. 목표는 디비!!! 읽고있던 SQL 첫걸음은 거의다 읽었으니 빠르게 넘기고, 디비첫걸음 빠
그림으로 읽는 HTTP & Network 중간에 헤더에 있는 각 필드명들에 대한 자세한 소개와 SSL 에 관한 이야기빼고는.. 완독한거 같다..? 캐시와 쿠키 개념이 좀 헷갈린다. SQL 첫걸음도 View나 집합연산 빼고는 완독..데이터베이스첫걸음 이번주에 완독해보자
디비 정복을 위해 SQL첫걸음주황책에 이어서 오늘은 데이터베이스 첫걸음을 읽었다.읽다보니 초반부에 너무 기초적인 이야기가 나와서 스킵스킵하다가 서버의 다중화, 아키텍쳐 등의 이론적인 이야기가 나왔다. 얼른 뭔가 실무적인 걸 배우고 싶어서 뒤로뒤로 넘겼으나 뒸쪽은 SQL
50~80페이지정도까지 읽었다.데이터베이스의 초기비용과 운영비용을 생각해보는 돈에 관한 이야기를 다루었다.사업모델에따라 "초기비용"과 "운영비용"을 생각해서 DBMS를 택해야하고 어떤 라이센스냐도 고려해봐야한다.엔지니어나 개발자가 자신이 하는 일이 고객이나 회사에서 어
오늘은 78~96페이지까지 읽었다. 오늘 먼저 배운 키워드는 다중화였다. 다중화는 예를들어서 서버 2대가 있을 때, 1대가 터져도 다른 1대가 그것을 대비해서 사용할 수 있다면 그것을 다중화라고 한다. 다른 말로는 고가용성이라고도 한다.그리고 핵심적으로 배운 것은 아키
Stand-alone, C/S 아키텍쳐의 한계점을 극복해서 웹 3계층이 나왔지만 가용성과 확장성이라는 측면에서는 아직도 부족하다.어떻게하면 정지하지 않는 시스템을 만들 수 있을까?가용성을 높여야한다.가용성을 높이는 전략에는 심장전략과 신장전략이 있다.심장전략은 서버 1
리플리케이션이란?DB서버와 데이터저장소 셋트의 다중화를 말한다.리플리케이션은을 쓰면 데이터저장소도 분산시키면서 물리적으로 한 디비저장소가 재난으로 사용하지 못하게 되더라도 다른 서버로 가용할 수 있게 된다.리플리케이션을 쓸 때 주의해야할 점은 데이터의 정합성이다. 한쪽
데이터베이스 첫걸음에서 SQL 기본 ~177페이지까지 학습데이터베이스의 세션이라 하면, DBMS에 커넥하고나서 이루어지는 다양한 교환 과정들의 시작과 종료까지의 단위를 세션이라고 한다.관계형 데이터베이스의 계층 구조는 인스턴스-데이터베이스-스키마-테이블로 4계층구조이다
오늘은 ~204페이지create view 뷰이름 as select ... 로 뷰를 만들수있다.inner join 은 on 조건을 기준으로 결합된 테이블을 보여준다letf/right outer join 은 left/right 테이블을 기준으로 전체 로우를 보여주지만 on
MySQL(InnoDB형 테이블)은 MVCC 라는 기술을 사용하고 있다. (Multi Versioning Concurrency Control)트랜잭션 A, 트랜잭션 B가 있다.기본적인 트랜잭션 격리 수준 Repeatable Read인 상태에서는트랜잭션 도중에1\. 서로
잠금 타임아웃(Lock timeout)과 교착 상태(Deadlock)MySQL(InnoDB) 기준으로 set innodb_lock_wait_timeout = 초단위;명령어로 lock wait timeout 시스템변수를 설정 할수있다.이때 만약에트랜잭션A가 갱신을 했고,
테이블의 설계의 제 1규칙은 어떤 공통의 속성을 가진 것의 집합이어야하고 이말은 테이블명은 반드시 복수형이나 집합명사로 표현해야한다.관계형 데이터베이스가 인간의 인식을 반영하는 거울이라는 것은 역으로 자의적으로 개념을 만들어서 집합을 나누는 인간의 자유로운 사고도 반영
디비를 실행해서 비어있는 t1 테이블에 위와 같은 쿼리를 만든다.그리고이라고 입력하고insert문이 반복되고 있는동안디비를 강제종료해본다.디비를 다시켜서 이라고 해본다.컴퓨터 사양에 따라서 1만건 단위로 커밋되어있는 것을 확인할수있다.출처: 데이터베이스 첫걸음 p261
데이터베이스 첫걸음 - 성능!
데이터와 정보의 차이파일 시스템의 문제점DBMS 의 발전 히스토리챕터 2까지 했다,
데이터베이스 관리자최종 사용자 (일반 사용자)응용 프로그래머관점에 따라 3가지로 분류할 수 있다외부 단계 / 개념 단계 / 내부 단계데이터 사전이란데이터 정의어데이터 조작어데이터 제어어무결성보안회복동시성
현실 세계 -> 디비로 옮기는 변환 과정을 data modeling이런 작업을 "추상화"한다 라고 함데이터 모델링을 쉽게 해주는 도구가 data model개념적/논리적 데이터 모델링 작업을 지원하는 다양한 데이터 모델중에 대표적으로 많이 사용되는게 Entity-Rela
데이터베이스 스키마와 레코드를 바라보는 방향에 따라 부르는 용어가 많다는 사실을 앎.열 / 속성 / 어트리뷰트 / (파일의) 필드행 / 투플 / (파일의) 레코드도메인: 속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인이라고 함. RDBM은 속성 값으로
투플의 유일성: 하나의 릴레이션에는 동일한 투플이 존재할 수 없다 -> Key투플의 무순서: 투플의 순서는 의미없다.속성의 무순서: 속성의 순서는 의미없다.속성의 원자성: 속성 값으로 원자 값만 사용할 수 있다. -> 관계 데이터모델은 다중값을 허용하지 않는다.키는 관
데이터가 결함이 없는 상태, 즉 데이터가 정확하고 유효화게 유지된 상태.데이터베이스가 삽입, 삭제, 수정 으로 상태가 변하더라도 무결성 제약조건은 반드시 지켜져야한다.무결성은 권한이 있는 사용의 잘못된 요구에 의해 데이터가 부정확해지지 않도록 보호하는 것이다.기본키를
검색키워드 : CPU 벤치마크표본체조립이 미숙한 상태에서 CPU를 교체하다간 크고 작은 문제가 발생할수있다.예시) CPU 핀이 휘었어요ㅠㅠ 엉엉 어떠케요?..ㅠㅠ (지식인)유튜브나 뭐 구글링해서 제대로 사전에 학습한다!결론은 No메인보드 CPU 공간에 똑같이 호환되는
SQL의 기본을 배운다고 생각하면 됨.릴레이션에 필요한 처리 요구를 수행하는 것이 여기서 말하는 관계 데이터의 연산이다. 데데이터 언어의 역할을 한다고도 한다.데이텨 연산은 대표적으로 관계 대수와 관계 해석이 있다.원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로
관계대수나 관계해석은 일반사용자가 이용하기 쉽지 않으므로 그 대안으로 나온 것이 Structured Query Language.SQL은 IBM에서 개발한 연구용 관ㄱ 데이터베이스 관리 시스템인 SYSTEM R을 위한, 1974년에 개발된 SEQUEL에서 유래함.많은 상
테이블을 여러개 연결해서 검색하는 것을 조인 검색이라고 한다.조인 검색 시에 각 테이블에 있는 속성의 이름은 달라도 되지만 도메인은 반드시 같아야 한다.일반적으로 테이블의 관계를 나타내는 외래키를 조인 속성으로 이용한다.이런식으로 조인 검색이라고 JOIN 을 꼭 사용하
INSERT 시에 VALUES 대신에 SELECT 문을 넣을 수 있음IN 연산자는 다중 행을 읽어서 연산 함, = 는 단일값 처리, EXISTS..?다른 테이블 기반으로 만들어진 가상 테이블뷰는 논리적으로만 존재다른 뷰를 기반으로 새로운 뷰를 만들 수도 있음창을 통해
뷰를 통해 삽입, 수정, 삭제가 가능하다.뷰를 통해 만들어지지 않은 속성에는 널이 들어간다중요한건 Key값을 가지는 속성이 뷰에 안만들어졌을 경우, 에러 삐빅집계함수 등이 포함된 뷰도 안됨. 기본테이블이 원래 포함되고 있던 내용이 아니라 새로 계산된 값이기 때문.그 외
디비 설계 할 때 크게 ER 모델과 릴레이션 변환규칙을 이용한 데이터베이스 설계와 정규화를 이용한 데이터베이스 설계로 나뉘어진다.설계 과정은1단계: 요구사항 분석2단계: 개념적 설계3단계: 논리적 설계4단계: 물리적 설계5단계: 구현가장 핵심은 1~3단계를 잘해야한다.
개발할 데이터베이스의 용도를 명확히 미리 파악하는 단계가 이 단계이다.디비를 사용하는 사용자마다 요구 사항 요구 사항이 매우 다양하기 때문에 실제 사용할 주요 사용장의 범위를 정해서 불필요한 요구 사항을 줄여서 종합해야한다.이 작업은 어떤 단계보다도 신중하고 꼼꼼하게
컴퓨터는 입력과 출력이다이 일련의 과정을 데이터 처리라고 한다하지만 데이터처리기로만 이해하면 안된다. (이것은 그냥 기능적 측면)그렇다면 계산기가 컴퓨터인가?프로그램이 가능한 데이터 처리기가 바로 컴퓨터다컴퓨터란 특수목적의 기계가 아니라 "다양한 형태" 의 작업을 수행
논리적 설계 개발에 사용할 DBMS가 처리 할 수 있는 데이터베이스의 논리적 구조를 설계하는 것이 논리적 설계 단계의 목표다. 네트워크 데이터모델, 계층 데이터모델 등 있지만 일반적으로 관계 데이터 모델을 사용한다. 논리적 설계단계에서는 관계 데이터 모델을 이용해
리눅스는 다중 사용자, 다중 작어븡ㄹ 지원하는 유닉스 계열의 운영체제리누스 토발즈GNU GPL 정신 (자유소프트웨어)안드로이드, 크롬, 페이스북, 뉴욕&도쿄 증권 거래소 등 리눅스 사용 (https://linuxfoundation.org/about)GNU(GN
if문 조건에서 true false 판별하는게 true false 뿐만이 아니라 여러가지로 true false 가 된다.location.href 로 get 형식으로 페이지 이동이 가능하지만 post로 값을 전달하면서 그 페이지를 호출하려면 <form> 형태로 만들
디비를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션(테이블)에 대한 데이터의 삽입,수정,삭제 연산을 수행할 때 부작용이 발생할 수 있는데, 이러한 부작용을 이상(anomaly)현상이라 한다.삽입 이상 insertion anomaly갱신 이상 update an
자료구조를 잘 만들면 개발자가 편하다.똑같은 프로그램이라도 성능을 향상시켜 실행속도를 올릴 수 있다.시스템, 패키지를 잘 설계하는 게 컴공을 전공한 사람의 역할과 임무라고도 할 수 있다. (비전공자와의 차이점을 만들기)그림 이해추상화 된 것을 이해교재를 이해코드, 프로
이번주 월요일부터 오늘까지 혼자서 개발하는 작업을 처음으로 맡았다.CS 팀의 전화응대의 인력 투입을 최대한 줄이기 위해서 1:1 문의 페이지를 만들고 어드민 페이지와 연동해서 관리자가 답변을 작성하면 바로 SMS을 전송할 수 있게 해야하는 작업이었다.셋 다 처음부터 해
하나의 릴레이션을 구성하는 속성들의 부분집합의 관계를 설명할 때 함수 종속이라는 용어가 나온다.이 함수 종속이라는 것을 알면 정규화라는 것이 더 쉽게 다가온다.함수 종속이란 말그대로 함수의 종속성을 나타내는 말을 의미한다.예를 들어 모든 투플에서 하나의 X값에 대한 Y
프로그램이란 컴퓨터가 수행할 명령어를 순서대로 나열해 둔 것이며, 프로그래밍 언어는 프로그램 작성에 사용되는 언어이다. 프로그래밍 언어는 컴퓨터가 수행할 수 있고 사람이 읽을 수 있는 형태로 계산을 나타내는 표기체계이다.프로그래밍 언어는 말이 아닌 글 형태로 사용되고,
컴퓨터 시스템 : 전자식 데이터 처리 시스템(EDPS: Electronic Data Processing System)논리 게이트 : 디지털 논리회로를 구현하는 데 기본적으로 사용되는 요소불대수(Boolean algebra) : 0 또는 1의 값을 갖는 논리변수와 논리연
제 2정규형 > 릴레이션이 제 1정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수종속되면 제2정규형에 속한다. > 완전함수종속, 부분함수종속 > 함수 종속은 함수간의 종속성을 말한다. > > 완전함수종속은 > 기본키가 있을 때, 종속자가 기본키에만 종속
foreach 안에 여러 textarea나 input을 넣을때 개별적인 값을 주고 싶을 때
SQL - UNION에 대해서 배움.MySQL에서 SELECT 시에 임의로 컬럼 추가하는 법을 배움.UNION은 UNION과 UNION ALL 명령어를 사용 할 수 있음.UNION은 뒤에 DISTINCT를 생략한 것이라고 보면 된다.그러므로 둘의 차이는 중복된 레코드를
Today I Learned1\. 스크립트 언어와 컴파일 언어의 차이에 대해서 배웠다.자바에서는 세미콜론이라도 안찍으면 에러가나면서 그 라인에서 걸려 컴파일 자체가 되지 않는다. 거기에 익숙해져서 에러가 나면 php에서도 당연히 실행이 안될거리고 무의식적으로 생각하고
Today I Learned > How to build jar using Gradle with dependencies References https://stackoverflow.com/a/4894308/14058876
Today I Learned방통대 자료구조 과목 배열 강의를 들으며 배열에 대해 리마인드하고 희소행열에 대해 배웠다.2차원 배열이 메모리에 저장하는 방식은 행우선 저장방식과 열우선 저장방식이 있다.메모리 영역에 배열의 값들이 연속적으로 할당받을 때 행이 기준이냐 열이
Today I Learned 1 > jquery 에서 ajax 사용하면서 웹페이지에서의 비동기를 이해하고, 사용법을 익혔다. ajax를 이용하면 웹페이지의 일부만 새로고침없이 업데이트할 수 있다. 이런 식으로 되어있으면 버튼을 누르면 게속해서 Hello라는 문구가
Today I Learned프로그래밍 언어론에서 인터프리터와 컴파일러, 그리고 믹스된 하이브리드에 대해 배웠다.고급 프로그램 언어는 크게 인터프리터와 컴파일러를 사용하는 방식으로 나뉘어진다.인터프리터를 사용하는 고급 프로그램 언어는 프로그래머가 작성한 소스를 하나씩 C
Today I Learned컴퓨터 시스템과 디지털 논리회로의 기본을 배웠다.컴퓨터 시스템은 입력 장치, 중앙처리장치, 기억장치, 출력장치로 이루어져있다.이들은 통로로 연결되어 전기신호를 주고 받는데, 이 통로를 시스템 버스라고 한다.1세대 컴퓨터부터 5세대 컴퓨터까지
Today I Learned데이터베이스 회복 기법에 대해 배웠다.트랜잭션의 특징(ACID)을 보장하고, 데이터베이스를 일관되고 모순되지 않게 유지하기 위해 데이터베이스는 회복 기능을 제공한다.여기서 회복이란 데이터베이스가 장애가 발생했을 때 장애가 발생하기 전의 상태로
Today I Learned데이터베이스 회복 기법에는 여러가지가 있고 각각에 대해 배웠다.로그 회복 기법에는 즉시 회복 기법(immidiate update)과 지연 갱신 회복(deferred update) 기법이 있다.즉시 회복 기법은 트랜잭션 수행 중에 데이터를 변경
Today I Learned데이터베이스 트랜잭션에서 병행 제어에 대해 배웠다.DBMS는 여러 사용자가 동시에 데이터를 조작할 수 있게 여러 개의 트랜잭션이 동시에 수행 되는 병행 수행(concurrency)를 지원한다. 병행 수행을 지원하는 것에는 문제가 없지만 같은
Today I Learned데이터베이스 보안에 대해 배웠다.데이터베이스 보안은 물리적 환경에 대한 보안, 권한 관리를 통한 보안, 운영 관리를 통한 보안이 있다.권한 관리를 통한 보안은 데이터베이스에 접근하는 사용자에서 권한이 없는 사용자로부터 보호하는 것을 말하고운영
Today I Learned데이터베이스의 권한 관리객체(테이블, 뷰)가 사용자별로 관리 되므로 데이터베이스에 접근이 허락이 될지라도 자신이 생성하지 않은 객체에는 접근할 수 없다.하지만 데이터베이스는 공유 사용을 목적으로 나왔기 때문에 다른 사용자가 객체에 접근할 수
Today I Learned분산 데이터베이스 시스템에 대해 배웠다.데이터베이스 시스템을 한 곳에 물리적으로 설치하는 것을 중앙 집중식 데이터베이스 시스템이라 한다. 반면에, 여러 곳에 분산 설치하였지만 네트워크로 엮어 논리적으로 사용자는 하나의 중앙 집중식 데이터베이스
Today I Learned데이터베이스 응용기술에 대해 배웠다.객체지향 데이터베이스란?객체와 객체 식별자, 속성과 메서드, 클래스 등을 지원하는 객체지향 개념에 기반을 둔 데이터 모델.객체관계 데이터베이스란?객체관계 데이터베이스는 객체지향개념과 관계 데이터모델의 개념을
Today I Learned > 실행 계획 개요 쿼리 실행 절차 SQL 문장을 잘게 쪼개 MySQL 서버가 이해할 수 있는 수준으로 분리. SQL의 파싱 정보(파스 트리)를 확인하며 어떤 테이블부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택. 두번째 단계에서
Today I Learned그냥 두개의 테이블을 불러오는 쿼리.from_date와salary가 emp_no이 10001인 값으로 모두 표현되고 있음.이렇게 하니까 emp_no 10002의 from_date가 오름차순에서 가장 빠른 날짜의 키의from_date와 sala
Today I Learned호이스팅변수 선언은 최상위에 선언된 것 처럼 행동예시:왜냐면 호이스팅되면서라는 형식으로 나오기 때문이다.함수 스코프var, let, constlet과 const를 쓰기를 권장. es6부터 나옴.var는 함수스코프.에러가 난다.왜냐면 var는
Today I Learned
Today I Learnedexplain에서 나오는 select_type 컬럼id 컬럼조인되는 테이블의 갯수만큼 생성이된다.id의 숫자는 작을 수록 쿼리의 바깥부분이거나 먼저 접근한 테이블이고,id의 숫자가 높을 수록 쿼리의 안쪽부분이거나 나중에 접근한 테이블이다.단위
Today I Learned실행 계획에서 table 컬럼, type컬럼두 쿼리 모두 같은 것.FROM 없어도 쿼리는 실행이 되지만 일부 DBMS에서는 FROM이 필수인 곳이 있다.그래서 MySQL은 호환성을 위해 DUAL이라는 스칼라 값이 있다.결론은 FROM 없이 쿼
Today I Learnedsort()자바스크립트에서 배열이나 객체를 정렬할때 쓰인다.UTF-16 유니코드로 정렬한다.즉, 1,10,2,3 을 정렬하면문자열로 바꿔서 정렬학 때문에1,2,3,10 이 아니라 1,10,2,3 그대로 나온다.sort인자에 compareFun
Today I Learned실행계획 type 컬럼 - fulltextfulltext 인덱스를 사용해 레코드를 읽는 접근 방식을 의미.MySQL은 fulltext 인덱스가 있으면 쿼리의 비용과 관계없이 거의 매번 fulltext 접근방법을 사용한다.const, eq_re
Today I LearnedLAPM (Linux + Apache + PHP + MySQL) 환경 구축macOS 에서는 루트폴더 설정때문에 몇시간 삽질해도 안되던게 리눅스에서는 하라는대로 하니까 그냥 된다.Apache2 설치잘 설치 됐는지 버전 확인아파치 재실행 & 실행
Today I Learned깃헙으로 자동배포 방법에 대해 알아보고 생각해보았다.깃헙 특정 브랜치를 Github Actions 가 push 할때 특정 이벤트를 통해 자동 배포하는 방법이 있다.그 특정 이벤트는 보통 배포를 위한 브랜치에 push를 하면 Github Act
Today I LearnedSHA & RSASHA는 해시 알고리즘으로 단방향 함수로 모든 크기의 입력을 고정 길이 출력으로 변환한다.SHA1을 사용하여 메시지의 무결성을 보장한다. (즉, 비트가 하나도 변경되지 않음).암호화 해시 함수는 동일한 출력을 제공하는 두 개의
Today I Learned타입스크립트자바스크립트는 많은 사람들이 쓰는 언어지만 다른 언어들도 그런거처럼 몇몇 단점이 있다.예를 들면 아래와 같은 조건들이 아무 에러없이 잘 실행된다.또 자바스크립트는 존재하지 않는 속성에 대한 에러도 없다.대게의 언어들은 에러를 발생시
Today I Learned실행계획 컬럼, SQL 모드MySQL 옵티마이저가 후보로 선정했던 key들의 목록, 즉 후보"였"을뿐. 사용안함.실행 계획에서 최종 선택된 사용하는 인덱스.예를 들어 PRIMAR 일 경우에 PK를 사용한다는 의미.sql_mode 라는 시스템
Today I Learned스택스택은 객체와 그 객체가 저장되는 순서를 기억하는 자료구조를 말한다.스택은 밑바닥과 사방이 막힌 통에 차례대로 무언가를 넣은 것을 상상하면 된다. 그 안에 순서대로 그 통에 맞는 객체를 넣었다고 생각하면 된다.이 때, 그 객체와 그 객체의
해쉬테이블은 키밸류로 된 시스템을 말함.키 밸류 형태이기 때문에 O(1) 시간복잡도를 가진다. 하나씩 돌려보는 선형검색이 아니라 키를 넣으면 밸류가 나오기 때문이다.해쉬함수로 만든 해쉬코드는 정수다해쉬코드 자체가 인덱스로 사용되서데이터 위치에 다이렉트로 접근한다.중복되
Today I Learned큐!youtubeMraUqmTOnyA
Today I Learned리스트!youtubeUdgAK28RZEA
Today I Learnedjsnode.js와 js에서 console.log함수를 입력했을 때 똑같이 사용할수있는건node.js 웹 APIs 둘다 콘솔과 관련된 API가 있는거고 API 인터페이스가 동일하다.MDN 사이트에서 Console API는 웹API 들중에 하나
Today I Learnedyoutube dream coding - js 1~9
Today I Learned > youtube dream coding js - 9 array-api 포인트 api 설명서 읽고 로그함수찍으면서 이해하기
Today I Learned > youtube dream coding - js 10,11,12 콜백지옥 체험 Promise
Today I Learnedasync, await
Today I Learned소중한 사람의 필요성, 파이로와의 대화속 MVC에 대한 생각, DDD, MSA에 연결되는 간략한 개념오늘은 파이로와 만나서 이런저런 이야기를 많이했다.이렇게 개발에 열정적이고 또 찐개발자라고 생각이 드는 사람을 만난지가...한참 된것 같다.파
Today I Learnedbasic ts\[\[튜토리얼 - \[\[튜토리얼 - \[\[튜토리얼
Today I Learendts\[튜토리얼 6] Dynamic (any) Types\[튜토리얼 7] Better workflow & tsconfig\[튜토리얼 8] Function basics
Today I Learnedts\[Tutorial \[Tutorial \[Tutorial \[Tutorial Tutorial #13 - Access modifiers
Today I Learendts\[Tutorial Tutorial #15 - Interfaces
Today I Learend > ts
Today I LearendtsTutorial 17 Rendering an HTML Template
Today I Learned크롬 익스텐션에서의 프론트엔드와 백엔드의 상호작용Full code: https://github.com/kyupid/first-chrome-extension2021-10-23_21-58-42When you click a link "ba
Today I Learned > 선택한 문자열의 위치 정보 가져오기 먼저 문자를 선택하려면 Document.getSelection()함수와 Selection API에 대해 알아보면 된다. 간단하게 텍스트 가져오기. 출처: https://stackoverflow.c
Today I Learend > 선택된 문자열에 하이라이트 하기 예를 들어 위와 같은 텍스트가 있을 때 각 li들의 첫 단어를 드래그해서 offset을 체크해보면 모두 0부터 시작한다. 이걸 구분 지어야 나중에 백엔드에서 정확히 하이라이트 된 텍스트를 가져올 수 있
Today I Learned필요한 기능은 API 문서를 먼저 보기각 위치에 대한 값을 고유하게 설정해야한다.Serialization객체나 자료구조를 네트워크나 스토리지를 통한 전송에 적합한 형식으로 변환하는 프로세스이다.예를 들면 자바스크립트에서 JSON.stringi
Today I Learned백엔드에서 하이라이트 된 텍스트의 위치를 가져오기 위한 계획을 좀 더 면밀하게 생각을 했다.위 코드는 Web API 의 HTMLCollection API를 호출한다.아래 처럼 잘 찾아서 콘솔에 나오고 길이도 4라고 나온다.2021-10-27_
Today I Learend > 텍스트의 위치 정보 다시 생각 / Object is possibly null textContent에서 선택한 startOffset, endOffset을 가져오려면 어떤 정보가 필요한가? 일단 full text between the t
Today I Learned1\. 로컬 스토리지에는 string만 들어갈 수 있다는 점.아래 코드 처럼 스트링으로 변환해야 로컬스토리지에 들어간다.하이라이트 된 객체들을 배열로 저장하기 위해서 아래와 같이 코드를 만들었다.로컬 스토리지에 저장할 때 페이지에 데이터가 있
Today I Learned웹팩js에서 클래스를 하나의 파일로 분리하면 그것을 사용할 때 export와 import 키워드를 이용해서 사용해야 한다.타입스크립트에서도 똑같이 했으나 계속해서 에러가 나길래 찾아봤더니 먼저 내가 잘못했던 게 있었다.그 해당하는 에러에 대한
Today I Learend > [Javascript] HTMLCollection 에 접근할 수 없는 문제 [Javascript] 모듈 번들링 방식 commonjs / es [Typescript] 모듈 import 와 export 오늘은 드디어 로컬 스토리지에서 가져
Today I Learend\[Javascript] Element생성하고 id 또는 class 붙이기하이라이트 하는 텍스트에 태그가 있을 땐 다르게 처리해줘야한다. 그래서 먼저 텍스트를 선택할 때 그 텍스트에 태그가 포함되어 있는지 체크하려한다.태그가 있을 경우에는,
Today I Learend\[Codeigniter] 트랜잭션 테스트\[PhpStorm] extract() 함수 unrecognized 없애기\[CodeIgniter] 쿼리가 잘 들어갔는지 성공적이었는지 체크하기Node의 parentElement는 Node가 가지는 텍
Today I Learend지난 TIL에서 마지막에 어떻게 해야할지 전혀 감이 없다고 느끼면서 Node에 대해서 더 명확한 이해가 필요하다고 생각했다.생활코딩을 통해 Node가 어떤 역할을 하는지 대강 배웠다.노드를 주변 노드 찾기 그리고 삽입/수정/삭제 등을 할 수
Today I Learend어제 TIL에서 계획한대로 하니까 금방 결과가 나왔지만, 딱 아래 이미지처럼 오른쪽에서 왼쪽으로 드래그하면서 텍스트가 왼쪽의 태그가 끝일때의 상황만 구현했다.왼쪽에서 오른쪽으로 한다던가 중간에 있는 태그라던가는 아직 동작하지도 않고 다시 어떻
Today I Learned\[Splitting] 자바스크립트 문자열 쉽게 조작하는 라이브러리\[Javascript] 커스텀 태그 사용법무작정 찾아가며 구현하는 것에 한계가 있다. 아는 게 없으니 보이지가 않아서인 거 같다.원하는 것을 구현하기 위해 어떤 걸 학습해야할
Today I Learned어제 TIL대로 원하는 구현에 대한 방법에 대해서 찾아봤으나 내가 원하는 조건에 대한 구현 방법은 검색해도 나오지 않아서 내가 타입스크립트를 제대로 배워서 기존에 있는 코드를 해석해서 아이디어를 얻는게 가장 빠른 방법일거라고 생각했다.그 전에
Today I LearnedDocument에서 선택된 문자열의 정보를 가지고 있다.range의 시작과 끝나는 지점인지 리턴한다.startContainer, endContainer 노드를 가지는 최상위 노드를 리턴한다Range가 끝나는 부분의 노드를 리턴한다.endCon
맘대로 주절거리는 글MVC 설계는 개발을 구조화하는 방법이다.로직을 일정한 틀로 패턴화해서 코드를 더 쉽게 짤 수 있게 도와주는 하나의 추상적인 도구라고 할 수 있다.여기다 코드를 더 쉽게 짠다는 말은 하나의 뭉텅어리가 파일 하나에 다 쑤셔져있는 코드들을 보수하기 쉽게
타입스크립트는 자바스크립트에 타입을 얹은 확장 버전이다. 주로 자바스크립트의 Superset이라고 표현한다. 타입스크립트는 왜 쓸까? 자바스크립트에서 실수할 수 있는 것들을 방지할 수 있다. 의도하는 코드는 함수의 파라미터로 들어오는 두 인자의 합을 리턴하는 것이
Today I Learend타입으로 프로퍼티만 있는 객체를 사용하려고 할때 타입스크립트는 interface를 사용한다.간단하게 js 테스트할때 새파일 js로 만들어서 vsc에서 js파일 우클릭후 터미널로 열어서 node 파일명.js 라고 하면 쉽게 테스트 가능.Type
Today I LearnedUnion type and Intersection typeEnumhttps://github.com/kyupid/typescript-tutorial/blob/main/%EC%BA%A1%ED%8B%B4%ED%8C%90%EA%B5%90ty
프로토타입은 상속이랑 비슷하다.자바스크립트로 상속을 구현하는 것이 프로토타입을 이용하는 것이다.객체나 배열 등 모두 프로토타입을 가지고 있다.프로토타입에서 자바스크립트 네이티브 API를 사용할수있던것이다.image_134위 코드처럼 사용할수도있지만 개별적인 프로퍼티도
간혹가다가 리눅스에서 파일을 열어보면 한글이 깨지는 경우가 있음.똑같이 로그 생성해주는 코드를 넣었는데 어느 부분에서 그렇게 인코딩이 바뀌었는진 모르겠지만 여튼 그럼.IDE에서 파일을 직접열어서 인코딩을 변경하는 방법도 있다.리눅스에서는 iconv를 사용한다.
타입스크립트 제너릭에 대해서 배웠다.위와 같이 공통된 부분을 제거할 수 있다.어떻게 활용할 수 있을까?
Today I Learned도커 사용기 작성윈도우10 Apache2.4 + PHP 5.3.29 개발 환경 구축\[Docker] pull, push 명령어내 생각이 담긴 정제된 글을 작성하는 데에 시간을 할애하기.언어 문법이나 명령어 등 간단한 팁도 다른 공간에 작성.벨
Today I Learned타입스크립트에서 제네릭을 사용하는 방법을 배우고 왜 필요한지 배웠다. 그 외에 제네릭 타입 제한에 대해서도 배움.따로 이에 대해서 글을 쓰면서 이해하려고 노력.
Today I Learnedphp 태그관련커밋된파일 gitignore그외에 한풀이하는 식의 질문글을 작성해서 올렸으나 삭제함..ㅠ 그냥 하나에 매몰되지말고 논리적이지 않더라도 넘기자~
Today I Learned\[PhpStorm] sftp 로컬 동기화현실적인 신입 개발자의 회사 깃 도입기
Generic을 사용하는 이유는 뭘까? 영어사전에서는 제네릭을 "포괄적인, 총칭의" 라고 정의하고 있다. 이 의미가 프로그래밍 언어에서의 제네릭에 완전히 대칭되는 의미는 아니지만 항상 그 의미를 음미해보면 실제로 사용하면서 도움이 된다.제네릭은 함수의 파라미터처럼 타입
오늘 배운 것https://kyupid.tistory.com/24
타임리프에서 태그 구조를 변형 하지않고 값을 넣으려면 다음과 같이 하면 된다
자바스크립트 클래스에 대해서 배웠다.클러스터링 인덱스에 대해서 배웠다.테이블 인덱스는 clustered index 와 non-clustered index로 나뉜다.clustered index는 기본적으로 PK에 붙는다.clustered index는 레코드의 물리적인 저
JPA FetchType에 따라 쿼리생성이 어떻게 달라지는지 배웠다.remember-me 구현 삽질하면서 배웠다.
로깅 레벨 찍을 때 logging.level.root=debug 하면 모든 라이브러리의 debug 레벨의 로그를 볼 수 있다.즉, 예를 들어 스프링 시큐리티의 RememberMeServices 구현체에 접근하는 정보를 보고 싶다면 application.propertie
테스트 코드를 왜 작성해야하고 그 이점은 무엇인지 배웠다.내가 느낀점을 썼다.최범균님의 영상을 보았다.
spring security 에서 remember-me 토큰을 수동으로 생성할 때 주의해야 할 점에 대해서 배웠다.
- [외부 API를 이용하는 로직인경우 테스트하기가 힘들다 이럴때 "대역(Double)"을 사용하면 편리하다](https://velog.io/@kyukim/Chap06)
JPA 활용 프로젝트 (기존 greenery or 회사꺼 참고)휴대폰인증 구현 인터페이스를 활용해서 테스트를 해볼수 있지 않았었을까헤더에 넣어서 보내기 vs 쿠키에 넣어서보내기이 방식을 사용하면 토큰을 어딘가에는 저장을 해야한다 헤더에 넣기 option1. 로컬스토리지
2022-05-04 해킹건 보안그룹 anywhere로 되어서 근데 오픈하면 어쨋든 최소한 한국에는 다 열어둬야하는건데 어떻게 막을까? 지금은 회사,디딤돌만 되어있음 OAuth 회원가입후 메인으로 리다이렉트 안되던거 회원가입후 remember-me 발급하는 부