디자인 패턴 중 하나대타로 객체 접근 해주는 객체 = 프록시 객체프록시 서버와는 다르다! (물론 중간 중계라는 건 같음)
제목 적기링크도 걸 수 있어요! 링크 이름이미지도 당연하죠 이미지 설명(이미지 링크)백틱 3개로 따로 분리 가능
인텔리제이 사용시터미널 사용시
flutter build apk --release --target-platform=android-arm64
이때, 각 키 값은 고유한 키 값을 가져야 함. 중복 불가변수 뒤에 오는 index는 반복마다 자동으로 1씩 증가함\->그러나 인덱스 말고 다른 값을 쓰는 걸 권장
| 동작 | 명령어 | 특이사항 | | --- | --- | --- | | 로컬 저장소 생성 | git init | 숨김 폴더로 관리됨 | | 작업 공간에서 Staging area로 저장 | git add 파일명 | 다음 커밋에 저장될 것 선언 | | Stage에 있는
추상 클래스 : 추상 메서드를 가진 클래스추상 메서드 : 내용이 없는 메서드인터페이스 : 모든 메서드가 추상 메서드인 클래스
방법 1방법 2 (변수에 함수 넣기)방법 3 (변수에 함수 넣기 + 익명 함수) 방법 4 (바로 값을 리턴하는 함수의 경우)
junit을 이용한 TDD - assertThatpublic static <T> void assertThat(T actual, Matcher<? super T> matcher)assertThat은 검증을 위해 사용하는데, 확인할 것과 그것의 값을 넣어 확인한
랜더링 : html 보여주기클라이언트가 html요청 -> 톰캣으로 통신 -> 서버 (스프링 서버)가 html 동적으로 생성 -> 완성된 html 고객에게 제공클라이언트가 html요청 -> 톰캣으로 통신 -> 서버 최소한의 html 제공(미완성, DB조회 없음) -> 클
기본적으로 타임리프와 리액트는 xss 방어를 위해 text로 받아들인다.<p th:text="${이 안에 XSS가 있어도 안심!}"></p>근데 이러면 글 꾸미기가 안되니까 가끔 풀어주기도 한다.<p th:utext="${여기는 조금 곤란}"></
JSON Web Token.Json 객체에 인증 관련 정보들을 담은 후 비밀키로 서명한 토큰존맛탱이 아니다왜 JWT를 쓸까?1\. apiKey에는 의미 있는 정보가 없다.2\. 인증 작업은 거의 모든 요청에서 발생한다.\-> 매번 DB 조회를 해야함. 즉... 오래 걸
물론!!! 정확한 검증은 국세청에서 발급 받는 게 좋다 하지만 간단하게 해보자위 코드를 보면 방법은 다음과 같다.1\. 사업자 번호는 10자리인증키로 번호와 연산을 한다.(키값 = 1 3 7 1 3 7 1 3 5)사업자번호 앞 9자리 인증키 9자리의 각 자리수를 각각
postgreSQL을 사용할 경우, 지리 정보를 다루기 유리 하다.예를 들어, 위도와 경도 값과 범위만 있다면 해당 범위 안에 있는 데이터를 가져올 수 있다.다음은 pins 테이블 내의 값을 조회한다.그러나 이때, postgreSql의 확장은 필수다. 하지 않을 경우
도메인별 enum 별도 작성/관리! (에러코드 인터페이스 만들어서 그걸 상속하는 enum 각자)RsData는 목적이 명확할 떄 사용 (기존의 리스폰스엔티티에서 필드를 지우고 싶거나 그럴 때)그리고 RsData의 메시지가 진짜 필요할지 생각Base엔티티로 생성/수정/삭제
내 브랜치에서 작업 중, main 브랜치의 내용이 변경되었다. 이때, 내 브랜치를 충돌 없이 pr하기 위해서는 어떻게 해야하는가?\-> main 브랜치의 변경 사항을 내 브랜치에 리베이스(rebase)
소스코드 -컴파일러-> 바이트 코드 -클래스 로더-> 메모리 -Execution 엔진-> 실행함 바이트 코드를 열어서 확인해보자gitBash로 다음을 입력파일 생성하여 소스 작성:vi Main.java입력 코드 예시\+) 저장 후 종료 → :wq컴파일javac Main
간결함Null 안전성 (Null Safety)Java와 같이 사용 가능 -> 마이그레이션 용이타입 추론(명시 안해도 자기가 알아서 알잘딱)코루틴 (Coroutine) -> 비동기처리 용이아래 코드로 특징을 보자그리고 여기서 val를 보자val은 값의 재할당이 불가능한데
일반적으로 웹소켓이라 하면 채팅방을 가장 먼저 떠올릴 것이다.그렇다면 웹소켓의 사용에 대해 잠시 생각해보자웹소켓 :TCP 통신 방식으로 서버와-클라이언트간 지속적 연결을 유지하여 데이터를 주고 받을 수 있는 기술이다.특징 !1) 빠르다. 2) 서버에 부하가 발생할 수
동시성은 여러 작업을 동시에 처리하는 것이다. 이는 2가지 방법으로 구현할 수 있는데, 첫번째는 진짜로 한번에 여러가지 작업을 하는 거고(멀티코어), 두번째는 빠르게 번갈아가며 하는 거다.멀티코어는 말 그대로 코어(CPU)가 여러개인것이다. 일하는 놈이 여러명이 정말
일반적으로 프로그램을 실행하기 위해서는 다음과 같은 과정을 거친다.그리고 여러 개일 경우 jar 로 만들어야 한다.자바 애플리케이션을 단순히 로컬에서 실행하는 대신,AWS EC2와 Docker를 이용하면 인터넷상에서 누구나 접근 가능한 서버 형태로 배포할 수 있다.그
도메인과 레코드는 1:N 관계다. (=도메인 1개에 여러 종류의 DNS 레코드가 연결될 수 있음)nslookup 도메인 하면 도메인에 붙은 A레코드들을 볼 수 있다.도메인: example.com 같은 주소 (사용자들이 쓰기 편하다!)→ 돈 주고 도메인 등록 업체(Reg
도커 컴포즈를 통해 여러 컨테이너를 한번에 관리할 수 있다.그럼 여기서 도커에 대해 생각해보자.스프링부트 프로젝트에 도커 컴포즈 파일을 넣었다고 가정해보자. 그럼 어떻게 될까?다짜고짜 프로젝트를 실행하려고 하면 아마 실패할 것 이다. 이유는 도커가 켜져 있지 않아서다.
Windows유저 → Bash Shell(or PowerShell) → CMD(명령 처리기) → 커널 → 드라이버 → 하드웨어Linux유저 → 쉘(Bash 등) → 커널 → 드라이버 → 하드웨어\-> 쉘: 사용자가 운영체제에 명령을 전달하는 인터페이스\+) Linux는
controller, service, repository 쭉 하나에 다 있음하나의 JAR 혹은 WAR로 배포DB도 보통 하나개발 속도는 빠르지만 규모가 커지면 복잡해짐특징쉬움하나만 배포하면 됨팀이 커지면 충돌 많고 유지보수 힘듦어떤 기능 하나만 바꿔도 전체를 다시 빌드
경매에서 여러 사용자가 동시에 입찰을 하면같은 데이터를 동시에 수정하려다 데이터 충돌이 발생할 수 있다.→ 이를 해결하기 위해 락(Lock) 을 사용한다.수정 권한을 가진 하나의 요청만 데이터 변경을 허용하는 장치동시에 여러 요청이 와도하나만 수정 가능 → 데이터 정합
결제 시스템을 구현할 때 토스 같은 PG사를 쓰면 참 좋다.근데 문제가 하나 있다. 만약 토스가 죽으면?이 문제를 해결해보자PG사에서 결제를 하고, 그 결과를 우리의 앱이 받는다.이때 서킷 브레이커는 실패율 임계치에 넘게 실패하면 요청을 못 보내게 닫아 버린다.예를 들