설치 시 UTF-8로 문자셋을 설정해주어야 한글이 깨지지 않는다. 

Use UTF8 as default server's character set 을 눌러주자.

 

Enable networking 을 체크해주어야 다른 컴퓨터에서도 접근이 가능하다.

이후 윈도우 시작탭에서 MySQL Client (MariaDB) 라고 생기므로 누르고 들어가면된다.

 

Show database;
SELECT database();

 

CREATE database mydb;
USE mydb;

CREATE TABLE bbs (

);

DESC bbs;

show databases;
-- use (디비이름); 후
show tables;

$(document.reportForm).serialize() 를 이용하면 알아서 폼데이터를 "문자=값1&문자=값2" 로 바꿔준다.

 

modal을 숨기고싶으면 $("모달객체").modal("hide"); 를 이용해서 숨겨야한다.

아주 기본적인 것인데, 설마하면 발견하는 에러. 객체 생성을 하지 않았을 때이다.

@Autowired 를 통해 객체생성을 Spring 에게 맡겨야 함.

게시판에서 리스트를 불러올 때 자주 보는 에러

자주 보는데 정리를 안해두니까 몇 번 씩 계속 봐도 이게 왜그러지? 싶어서 정리함.

 

리스트를 불러올 때 Oracle SQL query로 가져오는데, 

계속 start와 end가 안먹고 0과 -9로 나온다.

DataCount를 못가져왔을 때 발생하는 에러이다.

저기 dao.selectOne~ 를 result로 받아야하는데 안받았더니 발생했던 오류였다.

 

 

 

전역변수를 제일 바깥에 var run = false;로 주고 AJAX를 보내려는 부분 안쪽에서 비교후에 했더니 중복요청을 방지할 수 있었다.

한번만 갔다오면 되는데, 왜 여러번 가는 것인지...흠.. 문제인부분을 알았고 해결도 했는데 왜 여러번 갔었는지는 모르겠다..ㅠㅠㅠ 흠...왜죠? 

AOP (Aspect Oriented Programming) 란?

관점 지향 프로그래밍

핵심 비지니스 로직과 공통 모듈을 분리함으로써 개발자가 좀 더 비지니스 로직에만 집중해서 처리할 수 있는 방법을 제공 한다.

공통 모듈을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복을 해소해 주는 프로그래밍 기법이다.

즉, 공통 모듈(로깅, 보안인증, 트랜잭션 등)을 별도로 작성한 후 코드밖에서 비지니스 로직 사이에 삽입하는 것이 AOP 기능을 사용해 개발한 것이라고 볼 수 있다.

AOP는 OOP(Object Oriented Programming)를 대신하는 새로운 개념이 아니라, OOP를 더욱 OOP답게 사용할 수 있도록 도와주는 개념이다.

 

AOP 특징

Spring은 프록시(Proxy) 기반 AOP를 지원한다.

- Spring은 타겟(target) 객체에 대한 프록시를 만들어 제공한다.

- 타겟을 감사는 프록시는 실행시간(Runtime)에 생성된다.

- 프록시는 Advice를 타겟 객체에 적용하면서 생성되는 객체이다.

 

프록시(Proxy)가 호출을 가로챈다(intercept)

- 프록시는 타겟 객체에 대한 호출을 가로챈 다음 Advice의 부가기능 로직을 수행하고 난 후에 타겟의 핵심기능 로직을 호출한다.(전 처리 Advice)

- 타겟의 핵심기능 로직 메소드를 호출한 후에 공통 기능(Advice)을 수행한다. (후 처리 Advice)

 

Spring AOP는 메소드 Join Point만 기원한다.

- Spring은 동적 프록시를 기반으로 AOP를 구현하므로 메서드 Join Point 만 지원한다.

- 핵심 기능(타겟)의 메소드가 호출되는 런타임 시점에만 공통 기능(Advice)을 적용할 수 있다.

- AspectJ 같은 고급 AOP 프레임워크를 사용하면 객체의 생성, 필드 값의 조회와 조작, static 메소드 호출 및 초기화 등의 다양한 작업에 공통기능을 적용 할 수 있다. 

import java.util.Random;

public void generatePwd() throws Exception {
		// 10자리 임시 패스워드 생성
		StringBuilder sb = new StringBuilder();
		Random rd = new Random();
		String s = "~!@#$%^&*+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
		for (int i = 0; i < 10; i++) {
			int n = rd.nextInt(s.length());
			sb.append(s.substring(n, n+1));
		}

		System.out.println(sb.toString()); // 생성된 10자리 임시 패스워드 확인용
		
	}

Random 클래스를 임포트해서 문자열 s에서 무작위로 뽑은 한 자리를 스트링 빌더객체 sb에 10번 붙여주고 마지막에 스트링빌더에 있던 것을 toString() 메소드를 이용해서 변환시켜준다.

학원에서 Git을 이용해서 저번프로젝트부터 진행했는데 이번 final project를 진행하다보니 비어있던 나의 잔디밭을 확인할 수 있었다.

 

쩝... 인터넷에서 보니 다른 사람들은 다 잔디밭 잘 심어져있는데, 나만 안되어있어서 서운해..

인터넷 찾아보니까 이메일, 사용자명이 다르면 안올라가진다고 한다. 다들 소프트웨어를 통해서 확인해서 바꾸던데, 나는 따로 Git을 깔지 않았고 Spring에서 연결해주는 것으로 하고있었기 때문에(uri와 깃토큰을 이용해서 연결) 나와 맞지 않았다. 어쩔 수 없지 하고 진행하던 중에 발견한 Author 과 Commiter!!!

 

그리고 저 hong 어디서 많이봤던 것 같은데..!!!

Repository 에서 commit history를 보면 항상 hong으로 올라갔었지. 그래..!!! 바꿔보자 하고 바로 수정했더니 커밋이 안된다.

Author 바꾸기를 구글링했다.

https://hijjang2.tistory.com/723

 

[Eclipse] Git - Author 변경하는 방법 ★

1. 현재 상태 Git 에서 Commit 시에 저렇게 Author 와 Committer 부분이 기본 컴퓨터 ID 및 IP 값이 들어가는데 이게 한두번은 직접 변경을 하다가도 할때마다 계속 변경해줘야 하니 굉장히 귀찮다 설정을

hijjang2.tistory.com

이 분의 포스팅을 보고 바꿔주었다.

그리고 시도해보니 이제 드디어 나도 잔디밭을 심을 수 있게되었다.

오호호예!

앗싸..! 혹시 모를 저와같은 현상을 겪는 사람들을 위해서..!!

+ Recent posts