자바스크립트 비동기 찰떡 비유 비동기 asynchronous 라는 단어 때문에 아직도 동기, 비동기가 가끔 헷갈렸는데 이런 비유가 생각 났다. 파스타를 만들 때, 1. 파스타 면 삶기 (7분) 2. 소스 만들기 (2분) 의 단계가 필요하다. 이 때, 파스타 면 다 삶은 다음에 소스 만들기 시작하면 (1 -> 2 순서대로 하면) 동기 파스타면 (1) 기다리는 동안 소스 만들고(2) 2가 끝나면 다시 1로 돌아가서 1을 마저 처리하면 비동기 Javascript와 아이들 2022.01.07
스프링 부트 동작 순서 (트랜잭션, JDBC 커넥션, 영속성 컨텍스트와 레이어들, open-in-view) https://www.youtube.com/watch?v=GAy3my6Yroc&list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm&index=46 부딪혀가면서 스프링 부트를 공부하고 있기 때문에 아래 내용은 틀릴 수 있다. 틀린 부분이 발견되면 언제든지 수정할 것이고 지금은 100% 맞는 것보다 그 때 그 때 익힌 내용을 정리하고 가는게 나한테는 더 중요하다. 트랜잭션: 일이 처리되기 위한 가장 작은 단위 * 데이터의 변경이 있을때만 트랜잭션 사용한다. create, update, delete 같은 것들 예: 김밥 말기에는 아래와 같은 작업이 필요하다 - 김밥용 김 굽기: 이것 또한 하나의 트랜잭션 - 밥 짓기: 이것 또한 하나의 트랜잭션 - 야채 볶기: 이것 또한 하나의 트랜잭션 이.. Java & Spring boot 2022.01.07
[Swift] 함수 - 파라미터 간단 정리 https://docs.swift.org/swift-book/LanguageGuide/Functions.html swift에서 함수에서 파라미터를 받을 때 함수 내부에서 사용할 수 있는 라벨과 그 함수 밖에서 함수를 호출할 때 사용하는 라벨이 있는데 이게 좀 헷갈려서 아래 간단하게 정리한다. swift 함수에 대한 자세한 내용은 위 공식문서에 아주 잘 나와있다. 일단 함수에서 parameterName만 있다면? func sayHello(name: String) { print("hello \(name)") } sayHello(name: "Denise") 위처럼 사용하면 되는데 xcode로 코드를 작성하다보면 sayHello(_ type: String) {...} 이런 식으로 되어 있는 내장 함수들이 자주 .. swift & iOS/swift 2022.01.07
[ios 개발] 오토 레이아웃 auto layout 적용해보기 요새 유데미로 ios 개발 공부하는 중이다. 아직 초반이라 storyboard를 먼저 하는 중이다. swiftUI는 강의 후반부에 소개되는 것 같다 초반이라 수월한 편이었는데 auto layout이 나오면서 머리가 조금 복잡해졌다. 그래서 정리할 겸 여기에 기록한다. auto layout이 뭘까? 사용자가 뷰에 지정한 위치, 크기를 가지고 자동으로 계산해서 전체 뷰를 그려주는 것을 말한다. auto layout 은 왜 필요한가? 핸드폰 기종에 따라 스크린 사이즈가 달라지거나 또는 스크린 방향이 바뀌면 디자인이 다 무너진다 스크린 사이즈 마다 ui 요소들의 위치를 다 조정할 수도 없고... 스크린 사이즈가 바뀌어도 또는 스크린 방향이 바뀌어도 디자인이 무너지거나 어색해지지 않게 ui 요소들을 배치해야 한다.. swift & iOS/ios & xcode 2022.01.05
자바스크립트 Date 를 년,월,일로 바꾸기 / 특정 요일 구하기 자바스크립트에서 new Date()로 현재 시각을 가져오면 아래와 같다 이걸 2021년 12월 30일처럼 '~년 ~월 ~일'로 바꾸려면 어떻게 해야할까 Date 객체의 메소드 중 하나인 toLocaleDateString() 에 옵션을 파라미터로 전달하면 된다 new Date().toLocaleDateString('ko-KR', { year: 'numeric', month: 'long', day: 'numeric', }); 만약 이 날짜가 무슨 요일인지 알아내려면 아래처럼 옵션을 주면 된다 new Date().toLocaleDateString('ko-KR', { weekday: 'long', }); moment 같은 자바스크립트 라이브러리도 있다. 좀 까다로운 날짜 계산, 시간 계산까지 쉽게 해주는 라이브.. Javascript와 아이들 2021.12.30
intelliJ에서 인터페이스 생성하기 자바 스프링 부트를 사용한다면 intelliJ는 아주 편리한 에디터라고 생각한다 이클립스도 편리한 기능이 정말 많은데 심미적인 부분을 봤을 때 intelliJ가 좀 더 내 스타일이라서 intelliJ를 쭉 사용하고 있다 db에 데이터를 넣거나 어쩌구 저쩌구 복작복작(?)할 때 repository 패키지를 생성하고 그 안에 인터페이스를 만들어야 하는데 아래처럼 새 파일을 만드려고 하니 아래처럼 class 만 보이고 interface가 안보여서 당황했었다 (이클립스는 바로 보임..;;) 인텔리J는 한 번 더 들어가야 하는데 여기에서 Java Class를 누르면 아래와 같은 창이 뜨고 interface를 선택한 뒤 원하는 이름을 넣어주면 아래처럼 잘 생성된다! Java & Spring boot 2021.12.30
intelliJ에서 System.out.println(...) 간단하게 입력하기 자바스크립트에서는 console.log(..)로 내가 궁금해하는 값이 무슨 값인지 직접 출력해서 볼 수 있다. console.log(..)는 하도 손에 익어서 그런지 단축키나 직접 치는거나 별 차이가 없다 그런데 요새 자바도 하면서 System.out.println 을 많이 사용하게 되는데 이건 dot도 두번이나 들어가고 심지어 맨 첫 글자가 대문자라서 shift도 눌러야 한다.... 뭣도 모르고 System.out... 이렇게 정성스럽게 타자 치다가 알게된 단축키! intelliJ 에디터에서 sout만 치면 아래처럼 나온다 여기에서 원하는 것을 골라 엔터를 누르면 끝 Java & Spring boot 2021.12.30
[mysql] 컬럼 값 업데이트 하기 UPDATE 테이블명 SET 컬럼명 = 업데이트값 WHERE 컬럼명 = 조건 예) 어떤 컬럼에서 null인 부분을 모두 특정 값으로 바꾸고 싶으면 UPDATE members SET age = 30 WHERE age IS NULL (null은 등호가 아닌 IS를 사용한다. null이 '아닌' 부분은 ... IS NOT NULL) 예) 특정 컬럼에서 값이 10인 부분을 모두 20으로 바꾸려면 UPDATE members SET age = 20 WHERE age = 10 mysql 2021.11.22
백준 7568번 node.js (자바스크립트) 문제 내 코드 const [n, ...arr] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const peopleArr = arr.map(v => v.split(' ')); let count = 1; let answer = []; for(let i = 0; i < peopleArr.length; i++) { const [weight, height] = peopleArr[i]; for(let j = 0; j < peopleArr.length; j++) { const [w, h] = peopleArr[j]; if(i != j && weight < w && height < h) { count += 1; } } answer... 알고리즘 문제 풀이 2021.10.08
백준 2798번 node.js (자바스크립트) 내가 제출한 코드는 아래와 같다 let input = require('fs').readFileSync('/dev/stdin').toString().split('\n'); let cards = Number(input[0].split(' ')[0]); let M = Number(input[0].split(' ')[1]); let nums = input[1].split(' ').map(n => Number(n)); let max = 0; for(let i = 0; i .. 알고리즘 문제 풀이 2021.10.07