전체 글

전체 글

    [책] CH2 상수와 변수

    ※ 책 [혼자 공부하는 자바스크립트]를 공부하며 기록, 정리해 놓은 노트이다. 기본 자료형 - 문자열, 숫자, 불(그리고 null, bigint, undefined, symbol타입까지가 기본 자료형이지만 설명을 생략한다)문자열이스케이프 문자 활용하기> "동해물과 백두산이\n마르고 닭도록" '동해물과 백두산이 마르고 닳도록' > "이름\t나이" '이름 나이'> " \ " " " > "\" Uncaught SyntaxError: Invalid or unexpected token (따옴표 안 닫았다는 그것) > "\\ \\ \\ \\" '\ \ \ \' (라는데 크롬 콘솔창에 실험하면 '\\ \\ \\ \\' 그대로 뜬다. 왜지??) (아! console.log()로 찍어줘야 '해석'되어서 나온다) > co..

    [5주차] 인터넷에서 서버 돌리기

    ※ 스파르타 코딩클럽의 웹개발 종합반(5주)을 공부하며 기억하고 싶은 특이점들만 기록, 정리해 놓은 노트이다.Flask 기초 5탄 - 버킷리스트POST (버킷 등록하기) 1. 요청 정보 : URL= /bucket, 요청 방식 = POST 2. 클라(ajax) → 서버(flask) : bucket 3. 서버(flask) → 클라(ajax) : 메시지를 보냄 (기록 완료!) 단! 서버에서 한 가지 일을 더 해야한다: → 번호를 만들어 함께 넣어주는 것. 그래야 업데이트, 즉 ‘완료’ 표시가 가능하다.역시나 필요한 패키지는 flask, pymongo, dnspython 셋.서버(app.py)측프론트에서 받은 bucket(내용)에 더해 :버킷 번호”와 “완료 여부”를 함께 데이터에 넣어줘야 한다.@app.rou..

    [4주차] 내 컴퓨터에서 서버 돌리기

    나는 버튼! Flask - POST 요청과 응답1. 프론트(index.html)에 Ajax로 POST 요청 심어주기2. 서버(app.py)에 POST 대응 API코드 만들기# '/test' 창구에 POST 요청을 받았을 경우: @app.route('/test', methods=['POST']) def test_post(): title_receive = request.form['title_give'] print(title_receive) return jsonify({'result':'success', 'msg': '요청을 잘 받았어요'}) 왜 GET 요청 때는 data항목으로 키-값을 넘겨주지 않는 걸까? POST 때와는 무슨 차이지? A. GET방식 때 URL 뒤에 데이터를 붙여 보내는 것과 달리 POS..

    [3주차] 파이썬, 데이터베이스 다루기

    [3주차] 파이썬, 데이터베이스 다루기

    ※ 스파르타 코딩클럽의 웹개발 종합반(5주)을 공부하며 기억하고 싶은 특이점들만 기록, 정리해 놓은 노트이다. ※ 노션에 필기한 내용을 복사해오다 보니 식과 포맷이 엉성한 곳이 있다. let star_image = "⭐".repeat(star); 에러 기록 (인터프리터를 찾을 수 없어…) 가상환경 생성에 실패했습니다. PyCharm에서 파이썬 새 프로젝트를 실행하려는데 ‘인터프리터를 찾을 수 없고’ 그래서 ‘가상환경 생성에 실패했다’는 메세지만 받기를 십 수번… 여기저기 검색도 해보았지만 내 상황엔 적용되지 않는 것 같아보이는 조언들만 읽다가 지치고 읽다가 지치고 하기를 어언 1시간 반… 그래 가상환경 폴더(venv)는 안 만들어져어도 일단 파이썬 파일이 실행은 되니까 진행하자 하고 진행하던 중, 패키지..

    [2주차] jQuery와 Ajax로 서버에 GET요청하기

    [2주차] jQuery와 Ajax로 서버에 GET요청하기

    ※ 스파르타 코딩클럽의 웹개발 종합반(5주)을 공부하며 기억하고 싶은 특이점들만 기록, 정리해 놓은 노트이다. ※ 노션에 필기한 내용을 복사해오다 보니 식과 포맷이 엉성한 곳이 있다. jQuery란 jQuery는 자바스크립트를 모아놓은 도구모음(라이브러리)다! 부트스트랩이 CSS 도구모음인 것 처럼. jQuery의 장점 코드가 간결해지고 브라우저간 호환성을 해결해줘서 각광받았다. jQuery 임포트하기 내가 직접 제이쿼리.js 파일을 다운받아서 사용하는 것과, 구글 CDN(Content Delivery Network)같이 제이쿼리를 호스팅해주는 곳에서 갖다가 쓰는 방법이 있다. // Google CDN: // 알맞은 버튼에 기능 부여: 영화 기록하기 닫기 포스트를 할 수 있는 박스(post-box)를 처..

    [1주차] 눈에 보이는 부분(웹페이지) 만들기

    ... 크롬 개발자도구 콘솔창이 정확이 이런 의미였다니: “띄워놓은 페이지에서 빠르게 자바스크립트를 테스트해볼 수 있게, 개발자들을 위해 만들어둔 도구”콘솔 지우기(Ctrl+L): 도화지를 깨끗이 한다방향키 위 버튼: 방금 작성한 코드 복붙 기초 문법 1탄console.log("Hello World!"); // 자바의 System.out.println();과 같음let num = 20 let name = 'Bob'// 덧셈연산 fist+num // Bob20 => 자바에서 연산할 때처럼 문자열이 더 강력함(?) num+num // 40// 네이밍 컨벤션 let first_name = 'Bob' // snake case let lastName = 'Roger' // camel case // 특수문자와 띄어..

    [프로그래머스 Lv2] 방문길이

    [프로그래머스 Lv2] 방문길이

    다른 사람들의 풀이를 보는데 제각기 복잡하긴 해도, 나와 같은 부분에서 고민하고 이름을 짓는 걸 보고 신기해서 기록을 남긴다. 사람 생각하는 거 다 똑같구나 싶어가지고. ※ 내 풀이는 전부를, 다른 사람의 풀이는 일부만 발췌했습니다. 먼저 내가 푼 코드: import java.util.Arrays; import java.util.List; import java.util.ArrayList; class Solution { public static int solution(String dirs) { // 1. 전체 좌표 배열을 만든다: { {0,0}, {0,1}, ... } // -5보다 작아지거나 5보다 커지려고 하는 경우는 그대로 -5와 5로 고정한다. int[][] coords = new int[dirs...

    [프로그래머스 Lv2] 짝지어 제거하기

    [프로그래머스 Lv2] 짝지어 제거하기

    오늘 푼 문제 중 하나를 기록으로 남긴다. 이건 정말 인내심있게 잘 했다, 이정도면 트러블슈팅이라고 봐도 되지 않을까 싶어서 기념으로 풀이를 가져왔다. 처음에 시행 착오를 거쳐 정답이 나오게끔 만들고 나서도 다섯번을 더 풀어서 효율성 테스트(시간 초과인지 아닌지)를 통과해냈다. 그냥 조금씩 손 본 게 아니고 전부 다른 로직으로 풀었다. 풀면서 '당장 낼 모레 코딩테스트를 준비한다는 애가 이러고 삽질하며 시간을 보내고 있구나' 하면서도 자꾸 다른 방법이 떠오르고 한 번만 더 해보면 될 것도 같아서, 무슨 게임 공략하듯 홀려서 시간을 보냈다. 다음은 그 장대한 서사시이다. // 트라이 1: class Solution { public int solution(String s) { if (s == null || ..

    책 [Java의 정석 기초편] CH 2. 변수

    책 [Java의 정석 기초편] CH 2. 변수

    ※ Java의 정석 기초편을 공부하며 기억하고 싶은 특이점들만 기록, 정리해 놓은 노트이다. ※ 노션 페이지를 복사해오다 보니 식과 포맷이 엉성한 곳이 있다. 변수 : 하나의 값을 저장할 수 있는 공간. 저장된 값을 다른 값으로 교체할 수 있다. 상수 : 값을 한 번 저장하면 변경할 수 없는 저장공간. final int MAX_VALUE;와 같이 final 키워드를 붙여주면 된다. 리터럴 : 그 자체로 값을 의미하는 것. 12, ‘A’와 같은 원래의 ‘상수’들을 부르기 위해 따로 만든 용어. 리터럴의 타입과 접미사 변수에 타입이 있는 것처럼 리터럴에도 타입이 있다. 변수의 타입은 저장될 ‘값의 타입(리터럴의 타입)’에 의해 결정되므로, 만일 리터럴에 타입이 없다면 변수의 타입도 필요없을 것이다. 종류 리..

    책 [Java의 정석 기초편] CH 6. 객체 지향 프로그래밍I

    책 [Java의 정석 기초편] CH 6. 객체 지향 프로그래밍I

    ※ Java의 정석 기초편을 공부하며 기억하고 싶은 특이점들만 기록, 정리해 놓은 노트이다. ※ 노션 페이지를 복사해오다 보니 식과 포맷이 엉성한 곳이 있다. 변수의 초기화 : 변수를 선언하고 처음으로 값을 저장하는 것. 멤버변수와 배열은 컴파일러가 초기화를 해주지만, 지역변수는 내가 반드시 초기화를 해주고 사용해야 한다. 각 타입의 기본값(default value)은: 자료형 기본값 boolean false char '\u0000’ byte, short, int 0 long 0L float 0.0f double 0.0d (또는 0.0) 참조형 null 멤버변수의 초기화 법칙 클래스 변수가 인스턴스 변수보다 먼저 초기화된다. 초기화가 덮어씌워지는 순서는:💡 (기본값으로)자동 초기화 → 명시적 초기화 → ..

    배열 ↔ 리스트 형변환 모음

    int[] → Set : int[] nums = {1, 2, 3, 4, 5}가 있을 때, Set set = Arrays.stream(nums).boxed().collect(Collectors.toSet()); Set set = IntStream.of(nums).boxed().collect(Collectors.toSet()); int[] → Integer[] : int[] nums = {1, 2, 3, 4, 5}가 있을 때, Integer[] boxed = IntStream.of(nums).boxed().toArray(Integer[]::new); Integer[] boxed = Arrays.stream(nums).boxed().toArray(Integer[]::new); int[] → HashSet : ..

    함수형 프로그래밍을 지금 생각해야 할까?

    결론부터 말하자면, 아니라고 생각한다. 이라는 책을 읽었다. 내가 읽을 깜냥이 아니라는 걸 알았지만, 도서관에서 급하게 나서며 쓸어담느라 집으로 데려오게 되었다. 첫 장을 넘겼는데, 세상에 책 디자인이 너무 좋아서 빠져들어 읽었다. 책을 프로그램에 비유하자면, 인터페이스가 정말 깔끔하고 취향 저격이었다고나 할까. 이걸 읽고 있을 때인가 의심이 들면서도 '어, 어어..? 이해가 돼..!' 하면서 다음 걸 읽고 다음 걸 읽고 했다. 이 책에 가장 감탄하고 감사하는 것도 바로 쉽게 쓰여졌다는 이 점이다. 코드가 자바 기초 문법을 막 뗀 내가 읽어도 이해할 수 있는 정도의 수준으로 계속 쓰여있다. 읽으니 이해가 되더라는 그 놀라움과 기쁨이란. 물론 끝까지 다 읽은 것은 아니다. 아주 개괄적으로 읽었다. 그리고 ..

    [프로그래머스 Lv1] 신고 결과 받기

    [프로그래머스 Lv1] 신고 결과 받기

    08.27.(토) 무작정 작동하게끔만 풀어봤다. import java.util.HashSet; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.ArrayList; class Solution { public int[] solution(String[] id_list, String[] report, int k) { // 0. report에서 중복 제거하기 HashSet report_unique = new HashSet(Arrays.asList(report)); // System.out.println("중복을 제거한 report: " + report_unique); // 1. rep..

    Class literal 이란 용어를 발굴하게 된 사정

    Class 클래스를 찾아 공식 Java 도큐먼트에 들어갔더니 Class라고 소개되고 있다. 그냥 Class 클래스에 대한 페이지도 있나 찾아봤는데 없다. 다들 Class라고 소개하는 클래스는 사실 Class였던 것인가..! Class 클래스에 대하여 Class 클래스가 왜 필요한가? 내가 어떤 car1이라는 이름의 객체를 생성해서 사용하고 있는데, 얘가 속한 클래스의 이름이 뭔지 궁금할 때 쓰인다. 클래스를 동적으로 로딩하거나 디컴파일할 때 쓰이게 된다. Class 클래스의 소속 java.lang.Object java.lang.Class 위계가 이렇게 되어 있다. 즉, Object을 상속받고 lang 패키지에 속함. Class 클래스는 추상 클래스인가? 아니다. Class는 생성자를 감추고 있어서 new..

    왜 Iterator가 clutter라는 걸까?

    자바 documents의 The For-Each loop 페이지를 읽다가 궁금해졌다. 이 페이지에 보면, “the iterator is just clutter”라는 표현이 있다. Iterator가 clutter이니까, for-each 루프를 쓰면 (iterator를 숨기기 때문에) clutter를 방지할 수 있다고. 그래서 clutter가 정확히 뭐라는 걸까 궁금해서 구글링해보았다. 프로그래밍에서 Clutter의 뜻 어디서도 명확한 정의는 찾을 수 없었지만, 이런 용례들을 볼 수 있었다: (아티클의 제목 자체가 용례이다.) “****Comments in Code: How To Avoid Clutter and Make Your Code More Readable”** → 어떻게 코멘트(주석)을 작성해야 바람..

    책 [GOOD JAVA] 정리

    CH 9. 문자열과 메소드 문자열 메소드의 종류 String.charAt(인덱스) String.length() String.startsWith(”문자열”) String.endsWith(”문자열”) String.indexOf(”문자열”) String.lastIndexOf(”문자열”) // 가장 마지막에 나오는 ‘첫글자’의 위치 반환 // 못 찾으면 -1 반환 String.replace(”찾을 문자열”, “덮어씌울 문자열”) String.substring(시작 인텍스, 마지막 인덱스+1) // (0, 4)라면 인덱스 0~3까지 반환 String.split(”구분자 문자열”) String.toUpperCase() String.toLowerCase() String.trim() // 앞뒤 공백 제거 str1.co..

    2022년 10월 초까지 당면 과제

    "편안한 학습법"이라는 대목에서 찔렸다. 의식적인 연습을 프로그래밍에 적용하는 구체적인 사례가 있어 조금 참고해 볼 수 있을 것 같다. 의식적인 연습을 하는 핵심적인 키워드는 "집중하고 고치고 반복하라" 라고 한다. 내가 이해해 본 바로는 이렇게 설명된다: "집중하라" = 명확하고 구체적인 목표를 가지고 진행하고, 내 현재 능력을 살짝 넘어서는 작업을 지속적으로 시도하는 것. "고쳐라" = 피드백을 받아 고치는 것. 내가 이미 배운 기술의 특정 부분을 집중적으로 개선해서 업그레이드 시키는 것. "반복하라" = 일정 시간을 두고 이전에 배운 것을 복습하는 것. 부수고 만들기를 반복하며 이전에 프로그램을 조금씩 낫게 만들어 간다면 베스트 시나리오다. 잠깐 피드백을 받는 방법을 소개한다. 프로그래밍 학습에서 ..

    블로그 개설을 자축하며 - 이 블로그 대원칙

    2022년 08월 21일 시원한 여름 일요일 저녁. 날짜를 기록하는 것이 생각보다 의미가 있다. 이 블로그의 목적은 다음과 같다: 1. TIL (Today I Learned), 오늘 공부한 것을 기록하여 남긴다. - 정보성 글도 기록하지만 스쳐지나가는 (안 궁금할) 내 생각도 같이 쓸 것이다. 2. 남에게 설명하기 위한 목적이 아니다. - 설명이 불친철할 것이고 의문점 폭발로 도배되기가 십상일 거고 과한 완벽주의의 반대급부로 초딩 읽기같은 글도 자주 등장할 듯하다. 어떻게든 외울 수 있다면 나만 괜찮다고 생각하는 비유도 가감없이 남발할 예정이다. 3. 일단 시작하고 6개월을 지속하는 것이 첫 목표이다. - 글 쓰는 실력이든 글을 써나갈 방향이든 쓰면서 알게 되리라고 생각한다. 내가 할 수 있을지가 가장 ..