분류 전체보기141 [Spring] AOP 란? AOP Java는 다중 상속이 불가하므로 다양한 모듈에 '상속을 통한 공통 기능 부여는 한계'가 있다. 그리고, 기능 구현 부분에 핵심 기능 코드와 공통 기능 코드가 섞여서 효율성이 떨어진다. 그래서 공통 기능을 분리해 놓고 적용하고자 하는 부분에만 proxy라는 비서를 이용하여 적용하는 것이 AOP 기법이다. 호출부(client) -> Proxy(대행) -> Target(핵심기능) 용어 Aspect 공통기능 Advice Aspect의 기능 자체 Joinpoint Advice를 적용해야 되는 부분 (ex - 필드, 메소드) Before 메소드 실행 전에 advice 실행 After 메소드 실행 후에 advice 실행 Around 메소드 실행 전/후 및 Exception 발생 시 advice 실행 Poin.. 2021. 4. 11. [MAC/Eclipse] 초기 설치 & 설정 1. JAVA 설치 Java / Mac 맥북 JDK & Eclipse 설치하기 #Mac #맥북 #Eclipse설치하기#Intellij #인텔리J 사서 쓰면 좋지만무료로 이용하고 싶다면#이클립스 ... blog.naver.com 2. Spring 설치 Eclipse MarketPlace 에서 설치 3. Tomcat 설치 macOS Apache Tomcat 설치, 아파치 톰캣 실행 방법 macOS 서버 구동을 위한 Apache Tomcat 설치 및 실행 방법! 저는 Java 언어를 이용하여 Web 개발 공부를 하고 있습니다. 웹 개발을 하기 위한 기본적인 준비 중 하나인 아파치 톰캣을 설치하고 서버 구동 whitepaek.tistory.com 4. Github 연동 [개발 기타] eclipse github.. 2021. 4. 10. [Javascript] CONST, LET, VAR 차이 / SCOPE CONST 상수(변하지 않는 값) 누군가가 인위적으로 변수의 값을 바꿀 수 없으니 보안상 좋다. 다양한 thread가 동시에 접근해서 값을 변경해서 오류가 나는 것을 막아줄 수 있다. human mistake을 방지 할 수 있다. 'const' 는 아래처럼 변수 재선언, 재할당 둘 다 불가능 {} 단위의 scope EX1) - 재선언, 재할당 불가 const name = 'JASN' console.log(name) // JASN const name = 'OK' console.log(name) // Uncaught SyntaxError: Identifier 'name' has already been declared name = 'OK' console.log(name) //Uncaught TypeError:.. 2021. 4. 9. [CSS] BEM(Block Element Modifier) 이란? BEM(Block Element Modifier) BEM(Block Element Modifier) 은 개발자들이 ID와 Class를 섞어 쓰면서, HTML에서 자신이 ID를 썼는지 Class를 썼는지 헷갈리면서 계속 확인하게 되자 그 시간을 단축시키려고 Class만 사용하기로 통일 하면서 사용되었다고 한다. Block 독립적으로 존재하고 재사용 가능한 요소를 block으로 명명 태그 값, id 사용x 클래스로 정의 position, margin 등의 위치값을 지정하지 않음 (어디든지 재사용해야하니까!) 색상이나 크기 등을 묘사하는 이름x 구조적으로 의미 있는 이름으로 짓기 Ex) Element 블록 내부에 종속되어 실제 기능을 담당하는 것 종속의 의미를 block-name__element-name로 나.. 2021. 3. 29. [CSS] Inline, Block, Inline-Block 비교 Inline in the same line(같은 줄에 위치할 수 있다) 의 줄임말 Height(높이)와 Width(넓이) 가 속성을 지정해도 무시 됨. (해당 태그가 마크업하고 있는 Content의 크기 만큼만 공간을 차지하기 때문) margin의 상하 간격이 적용되지 않는다.(위아래가 적용이 안됨.) Block Width,Height,Margin,Padding 모두 적용 가능하다. margin : box의 boader(경계)로부터 바깥 쪽에 있는 공간 padding : box의 boader(경계)로부터 안 쪽에 있는 공간 Inline-Block Inline처럼 줄 바꿈 없이 한 줄에 엘리먼트 나란히 배치. Inline에서 불가능한 Width,Height 조정 및 Margin,Padding 상하 조정이 .. 2021. 3. 26. [HTML] Semantic HTML이란? What is Semantic HTML? 시맨틱(Semantic)은 "의미의, 의미론적인"이라는 뜻이다. 태그는 non-semantic 태그라고 할 수 있고, , 등 이름만 보고 태그의 역할을 유추 할 수 있는 태그는 semantic 태그라고 볼 수 있다. 예전 HTML 문서들을 보면 를 남발한 non-semantic한 문서들이 많았다고 한다. 하지만 지금은 코드만 봤을 때도 왜 사용했는지 유추가능한 Semantic HTML을 많이 쓴다고 한다. WHY? 검색 엔진은 의미론적 마크업 을 페이지의 검색 랭킹에 영향을 줄 수 있는 중요한 키워드로 간주한다. (SEO 참조). 시각 장애가 있는 사용자가 화면 판독기로 페이지를 탐색할 때 의미론적 마크업을 푯말로 사용. 의미없고 클래스 이름이 붙여져있거나 그렇지.. 2021. 3. 25. [HTML] OG Tag(Open Graph Tag) 이란? OG Tag 페이스북에서 만들어진 OG Tag는 Open Graph Tag의 줄임말로, 어떤 링크를 공유할 때 어떤 모습으로(미리보기의 제목, 설명, 이미지 등) 보여주고 싶은 지 지정하는 Tag이다. 사용하는 이유 웹 크롤러 또한 하나의 웹 프로그램이기 때문에 HTML 사이트의 3줄 요약이 무엇인지, 무엇이 대표 이미지인지 100% 자동으로 판별하기 어렵다. 사용법 References velog.io/@byeol4001/Meta-Tag-OG%EC%98%A4%ED%94%88%EA%B7%B8%EB%9E%98%ED%94%84-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 blog.ab180.co/posts/open-graph-as-a-website-preview developers.fac.. 2021. 3. 23. [MySQL] LAST_INSERT_ID() 사이트의 자유게시판의 게시글을 작성 할 때, 다중파일을 업로드할 수 있게 해주었기에 board 테이블과 file 테이블을 따로 만들어 관리를 하였다. 그럼 서비스에서 이와 같이 게시물을 추가하고 게시물ID를 가져와 그 게시물 ID에 맞게 파일을 넣어줘야 하는데, 게시물 ID는 DB에서 Auto-Increment로 자동생성이 되기 때문에 mapper에서 selectKey를 지정해 주지 않으면 파일 추가 할 때 에러가 나는 것을 확인하였다. oracle을 사용 할때는 Auto_Increment이 없기 때문에 시퀀스를 만들어 주었고, Mapper에서 insert하기 전, 게시판ID가 Null이면 1을 KeyProperty에 넣어줬었다. 이걸 Mysql에서 어떻게 처리할 지 찾아보다가, LAST_INSERT_I.. 2020. 10. 18. [JSP] 스크립틀릿 Session NPE 체크 프로젝트 사이트의 공통 헤더부분이 다음과 같다. Login과 Register(회원가입) 부분이 항상 공통으로 들어가는데, 로그인이 되었을 때는 세션에 아이디를 체크해서 NULL이 아닐 경우 마이페이지와 로그아웃으로 바꾸려고 하였다. 그러려면 HTML에서 IF문을 써줘야 되는데.. 어떻게 하지 생각하다가 스크립틀릿을 사용해야 겠다고 생각했다. 맨 처음, NULL 체크를 ISEMPTY 함수를 이용해서 하였는데 500에러가 뜨면서 NPE가 발생하였다. 그래서 구글링 하다가 다음 글을 발견하고 (user_id == NULL) 바꿔서 NULL체크를 해서 해결하였다. java.lang.NullPointerException 문제 jsp에서 session 사용 시 java.lang.NullPointerException.. 2020. 10. 15. [Mac/MySQL] utf8 설정 / Mac & Window 데이터 방식 내 노래 파일들이 있는 fileDTO의 파일명을 불러올 때, 한글로 된 트랙들만 오디오 태그로 불러왔을 때, 재생이 안되는 현상을 경험하였다. 콘솔창을 확인해보니 한글이 깨지는 현상이 발생하였다. mysql db에 저장할 때 한글이 깨진다고 생각하였고, mysql 캐릭터 셋을 utf8로 바꿔주는 작업을 하였다. 구글에 찾아보니 아래와 같이 파일을 복사하라고 나와있다. 파일 복사 $ sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 하지만 support-files 디렉토리에 my-default.cnf가 존재하지 않았다. 그래서 직접 만들어 주기로 했다. cd /usr/local/mysql/support-files 로 디렉토리에 접근하여, .. 2020. 10. 14. 이전 1 ··· 10 11 12 13 14 15 다음