목록전체 글 (364)
삶 가운데 남긴 기록 AACII.TISTORY.COM
@RequestMapping@RequestMapping은 Spring MVC의 어노테이션이며, 특정 URL 요청을 어떤 컨트롤러의 메서드가 처리할지 연결(mapping)해주는 역할을 합니다.예를 들어 @RequestMapping(value="sendMessage")으로 되어있다면 이 메서드가 /sendMessage라는 경로(path)로 들어오는 요청을 처리하겠다는 것을 의미합니다. 예를 들어, 웹 애플리케이션이 http://localhost:8080에서 실행 중이라면, 사용자가 http://localhost:8080/sendMessage로 접속할 때 이 어노테이션이 붙은 메서드가 실행됩니다. 사용 위치:컨트롤러 클래스(class) 레벨이나 메서드(method) 레벨에 붙일 수 있습니다.클래스 레벨에 ..
MyBatis 와 Spring Data JPA 비교 특징MyBatisSpring Data JPA패러다임SQL 매퍼 (SQL-Centric)ORM (Object-Relational Mapping) (Object-Centric)SQL 관리개발자가 XML이나 어노테이션에 직접 SQL 작성기본적인 CRUD SQL은 프레임워크가 자동 생성개발 속도Mapper와 XML을 모두 작성해야 함Repository 인터페이스 상속만으로 CRUD 완성 (빠름)복잡한 쿼리SQL을 직접 제어하므로 복잡한 조인, 동적 쿼리 작성, 속도 튜닝 등이 용이JPQL이나 QueryDSL을 사용해야 하며, 때로 복잡함영속성 관리SQL 실행 후 결과 매핑만 담당엔티티의 생명주기(조회, 변경 감지, 삭제)를 관리 (영속성 컨텍스트) MyBa..
Model과 ModelAndView의 차이점특징ModelModelAndView역할뷰에 전달할 데이터(속성)만 담는 역할 (인터페이스)데이터(Model)와 뷰 이름(View)을 모두 담는 컨테이너 (클래스)뷰 지정컨트롤러 메서드의 반환 값(String)으로 뷰 이름을 지정객체 내부의 setViewName() 메서드로 뷰 이름을 지정주요 사용처최근 Spring 개발 트렌드에서 주로 사용 (String 리턴 타입과 함께)Spring 초기에 자주 사용되었으나, 최근에는 사용 빈도가 감소반환 타입컨트롤러 메서드의 파라미터로 받으며, 메서드는 보통 뷰 이름(String)을 반환컨트롤러 메서드의 반환 타입이 됨 ModelModel 객체는 컨트롤러 메서드의 파라미터로 주입받아 사용하며, 데이터를 추가합니다. 메서드는..
git 클라이언트 설치https://git-scm.com/ Git git-scm.com여기서는 윈도우를 기준으로 설명합니다. git 로컬 저장소 만들기윈도우의 cmd를 사용해도 되지만 linux 스타일인 위에서 설치한 git bash를 실행시켜 작업하겠습니다.d:\ 드라이브로 이동합니다.cd /dgit이라는 디렉터리를 생성한 뒤 이동합니다.mkdir gitcd git여기에 다시 gitwork 디렉토리를 생성한 뒤 이동합니다.mkdir gitworkcd gitwork깃 저장소를 생성해서 초기화 하는 명령어를 실행합니다.git init그러면. git이라는 디렉터리가 하위에 자동생성되며 이 디렉터리가 git에서 관리하는 저장소라는 역할을 하게 됩니다.디렉터리 경로 앞에 점(.)을 붙이는 것은 리눅스에서 숨..
원격 브랜치 로컬로 가져오기(fetch)1. 원격 저장소(orign)의 모든 원격 브랜치를 로컬로 가져옴git fetch origin 2. 체크아웃할 수 있는 브랜치 목록 확인git branch -a브랜치 목록 중에서 원격 브랜치에는 remotes/origin 접두사가 붙어 있습니다. 로컬 브랜치를 분리 생성 후 원격 브랜치에 적용1. 분리하려는 원본 브랜치를 checkout 합니다.git checkout 분리하려는브랜치이름 2. 로컬 저장소에 분리하려는 새로운 브랜치를 생성합니다.git checkout -b 분리생성할브랜치이름 3. 원격 저장소에 새 브랜치를 push 해 줍니다.git push origin 로컬에분리생성된브랜치이름 원격 브랜치 업데이트1. 원격 저장소의 브랜치들을 갱신git rem..
수정된 모든 파일의 변경 내용을 폐기commit 하거나 git add 하지 않은 파일의 수정사항을 마지막 커밋 상태로 되돌립니다.git restore .이 명령어는 현재 디렉토리(.) 기준 모든 수정된 파일의 변경내용을 폐기합니다.git 2.23 버전부터 권장합니다.그 아래의 버전에는 checkout 명령어를 사용해도 동일하게 동작합니다.git checkout . Staged된 파일 포함 모든 변경 내용 폐기git add를 통해서 스테이징 area에 올린 사항까지 모든 로컬 변경 사항을 폐기하고 싶다면 reset 명령을 사용합니다.이 명령어는 복구가 어려우니 주의하십시오.git reset --hard마지막 커밋(HEAD) 상태로 작업 폴더 전체를 강제로 되돌아 갑니다. 새로 추가된 파일(Untrack..
React 의 특징페이스북(메타)에서 만든 UI를 구축하기 위한 자바스크립트 라이브러리입니다. 1. 컴포넌트 기반 아키텍처 (Component-Based Architecture)React는 UI를 '컴포넌트(Component)'라는 독립적이고 재사용 가능한 조각으로 나눠서 개발합니다.코드를 재사용하기 쉽고, 유지보수가 용이해집니다.각각의 분리된 컴포넌트들을 조립해서 UI를 만들수 있습니다. 예를 들어, 웹사이트의 헤더(Header), 버튼(Button), 사이드바(Sidebar)를 각각 별개의 컴포넌트로 만들 수 있습니다. 2. Virtual DOM (가상 DOM)웹 브라우저는 DOM(Document Object Model)이라는 트리 구조로 웹페이지를 표현합니다.사용자가 버튼을 클릭하는 등 변화가 생..
서버 사이드 랜더링(SSR)은 브라우저로 필요한 화면(html)을 전송해주는데, 보통 jsp나 Thymeleaf 등을 사용합니다.그런데 REST API 서버 처럼 JSON(혹은 XML)을 이용해서 데이터를 주고 받는 경우, 무상태에다가 화면을 제공하지 않기 때문에 HttpSession이나 쿠키로 인증하는 방법에 제한을 받습니다.따라서 이런 제한을 피하기 위해 토큰을 이용해서 인증하는 방법을 JWT(JSON Web Token) 이라고 합니다.인증(Authentication): 사용자의 아이디와 비밀번호가 올바른지 확인합니다.JWT 생성: 인증에 성공하면 사용자 정보를 담은 JWT를 생성합니다.JWT 전송: 생성된 JWT를 클라이언트에게 응답으로 보냅니다.인가(Authorization)와 보호된 리소스 접근..
카카오 로그인 설정우선 카카오 계정이 필요합니다.카카오 로그인 준비를 위해서 카카오 디벨로퍼 사이트에 가서 로그인합니다.(카카오 계정으로 로그인됩니다.)https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해 보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com로그인 한 뒤 상단에 앱 메뉴를 누르고 + 앱 생성 버튼을 클릭합니다.필수 입력 정보를 입력한 뒤 저장 버튼을 누르면 앱이 추가됩니다.방금 추가한 앱을 눌러보면 좌측에 메뉴가 나오는데 앱 > 플랫폼 키 메뉴로 들어갑니다.이 중 REST API키는 따로 보관해 둡니다.REST API키 항목 근처에 클라..
브랜치 버전 관리 전략의 핵심 구조브랜치명역할수명설명main (master)제품 출시 가능한 상태영구적현재 배포되어 고객이 사용 중인 안정적인 버전develop다음 버전을 위한 개발영구적개발 중인 코드들이 모이는 메인 통합 브랜치feature/새로운 기능 개발임시develop에서 갈라져 나와 기능 완성 후 다시 develop으로 병합bugfix/개발 중 발견된 버그 수정임시아직 배포되지 않은 개발 단계의 버그를 고치기 위해 develop에서 분기hotfix/실서비스 긴급 버그 수정임시이미 배포된 운영(production) 환경의 치명적 오류를 고치기 위해 main에서 직접 분기release/배포전 통합 테스트 및 수정임시배포 직전 develop이 완료된 후 개발을 중지하고 통합 테스트와 버그 수정용 버전..
후킹후킹이란 시선을 사로잡는 포인트를 말합니다.숏폼, 광고, 스토리의 도입부에서 시선을 잡기 위해 사용하는 기법입니다.뇌가 예측하는 다음 순간을 뒤집어야 합니다. 후킹은 독자를 속이거나 무조건 놀라게 만드는 기술이 아닙니다. 정보를 적절히 감추고, 인물에게 관심을 갖게 하며, 다음 장면을 볼 이유를 제공하는 기술입니다. 후킹의 구조강한 후킹은 대체로 다음 구조를 가집니다.익숙한 상황을 제시한다.→ 한 가지 비정상적인 요소를 넣는다.→ 독자가 질문하게 만든다.→ 작은 답을 준다.→ 더 큰 질문으로 연결한다. 작품의 첫 장면을 만들 때는 다음 네 가지를 점검하면 좋습니다.첫 페이지에서 이상하거나 특별한 일이 보이는가?주인공이 무엇을 원하는지 알 수 있는가?실패할 경우 잃는 것이 있는가?장면이 끝날 때 새로운..
투자는 개인의 선택이며 이 글은 상품의 소개일 뿐 투자 결과에 대해 책임을 지지 않습니다. 지수 추종 ETF : S&P500, 나스닥 100, 코스피 200 등상위 우량주 10 종목 ETF: 미국테크TOP10, TIGER 코리아 TOP10 등이들은 투자 성향에 따라서 장단점을 가집니다.구분지수추종 ETF (시장 전체)상위 10종목 ETF (TOP 10)투자 대상지수 편입 종목 전체 (수백~수천 개)지수 내 시가총액 상위 10개 기업분산 효과매우 높음 (개별 기업 리스크 최소화)낮음 (특정 대형주 의존도 높음)상승장 수익률시장 평균 수준의 안정적 수익주도주 상승 시 시장 평균을 초과하는 높은 수익하락장 방어력상대적으로 양호 (포트폴리오 쿠션)주도주 하락 시 낙폭이 클 수 있음추천 성향장기 안정형, 적립식..
https://aacii.tistory.com/483 대항해시대 2 팁과 공략술집 겜블 공략[블랙 잭 하는 법] 블랙잭은 카드를 하나씩 가져가면서 숫자를 합하는 겁니다. 숫자는 21이 되면 승리이고...21에 가까운 수는 21보다 적어야 합니다. 21보다 크면 무조건 지게 됩니blog.aacii.nethttps://aacii.tistory.com/486 대항해시대 2 항해사 정보이름국적연령통솔항해지식직감용기검술매력항렙전렙항경전경측지포회교행운조안 페레로포르투갈18787573858282891100 050카탈리나 에란초에스파냐1880796552869295810190170 0 50옷토 스피노라영국2592726143blog.aacii.nethttps://aacii.tistory.com/485 대항해시대 2 항구별..
술집 겜블 공략[블랙 잭 하는 법] 블랙잭은 카드를 하나씩 가져가면서 숫자를 합하는 겁니다. 숫자는 21이 되면 승리이고...21에 가까운 수는 21보다 적어야 합니다. 21보다 크면 무조건 지게 됩니다. 1. 합이 21이 되면 건 돈의 세배를 딸 수 있습니다. 2. 상대가 19이고 당신이 20일 경우 당신이 이기게 됩니다. [Dice 게임방법] 우선 주사위 두개가 같은 숫자 나올 경우 원페어. 주사위 두개가 같은 숫자인 것이 두 개 나올 경우 투페어. 같은 숫자 세 개 나올 경우 트리플.두 개 같고 세개 같은 게 있을 때 풀하우스. 네가 같을경우 포 다이스(fuur dice) 다섯 개 같을 경우 파이브 다이스(five dice) 최고입니다. 만약 똑같이 투페어를 잡았을 경우. 한 명은 2.4 두페어고 ..
JPA 연관관계 결정데이터베이스에서는 PK와 FK으로 엔티티 간 관계를 표현합니다.반면 JPA는 객체 지향이라서 데이터 연관관계의 방향성을 결정하는 것이 어렵습니다.예를 들어, 회원이 여러 개의 아이템을 가지고 있다고 가정하면, 회원 객체가 아이템들을 참조할 것인지, 아이템이 회원을 참조할 것인지 판단해야 합니다.JPA는 보통 변화가 많은 쪽을 기준으로 결정하거나 ERD에서 FK를 기준으로 결정합니다. 변화가 많은 쪽 기준회원과 게시물의 관계를 예를 들면, 회원들이 활동을 통해 여러 게시물이 만들어지므로 연관 관계는 게시물 기준으로 판단하는 것이 좋습니다.회원 아이디회원 이름user1사용자1user2사용자2user3사용자3user4사용자4번호제목작성자내용1제목1사용자1내용...12제목2사용자2내용...2..
