접근 제어자의 종류

  1. public
  2. protected
  3. default
  4. private

위 네 종류의 접근제어자가 있으며 각 제어자에 따라 접근 범위가 제한된다

Modifier 클래스 패키지 파생클래스 전역
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N

예를 들면 아래와 같은 Main Class 와 Access Class가 있다.

public class Main {
    public static void main(String[] args){
        System.out.println(Access.number);
    }
}

변수 number가 public인 경우
실행결과: 1

public class Access {
    public static int number = 1;
}

변수 number가 private인 경우
실행 결과:  java: number has private access in Access

public class Access {
    private static int number = 1;
}


출처:https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

'JAVA' 카테고리의 다른 글

[Spring Boot - OAuth2] ClientRegistrationRepository 란 무엇일까?  (0) 2023.12.18

Git ignore란?

프로젝트를 git으로 관리할 때 설정 파일 이나 build된 파일이나 commit하고 싶지 않은 파일을  제외하고 commit하게 해주는 기능이라고 할 수 있다.

Git ignore 설정하기

설정하는 방법은 매우 간단하다 .
파일명이 .gitignore인 파일을 생성한 뒤에 아래 설명하는 문법에 맞춰서 무시하고자 하는 파일들을 작성해주면 된다.
ignore 파일이 위치한 directory 아래에 있는 파일들을 제외시킨다
한가지 예를 들어보겠다. 만약에 아래와 같은 구조를 가진 프로젝트라면

맨 왼쪽의 dir이 프로젝트의 root dir 이라고 하자
만약에 root의 .gitignore은 빈파일이고
dir1의 gitignore 파일에 file* 이라고 적혀있었다고 치면
file 1, 2, 3 은 dir1에 있는 .gitignore 파일에 영향을 받지 않는다.

Git ignore 문법

# 주석
* 무엇이든 올 수 있음
! 예외적으로 포함시킴

예를 들어 파일의 내용이 아래와 같다고 해보자
*.txt
!abc.txt
.hellogitignore
이 gitignore의 의미는 확장자가 .txt인 파일중 abc.txt만 포함시키고 모두 제외시킨다는 뜻이다.
그리고 마지막 줄의 .hellogitignore 이부분은 확장자를 제외하는것이 아니라 파일자체 즉 .hellogitignore을 제외시킨다는 뜻이다.

적용하기

프로젝트에 .gitignore 파일을 포함시킨후에 commit & push해주면 된다.

 

출처: git-scm.com/docs/gitignore

Copyleft와 Copyright

  • Copyleft 
    저작권(Copyright)에 반대되는 개념으로, 저작권에 기반을 둔 사용제한이 아니라 저작권을 기반으로 한
    정보의 공유를 위한 조치이다.
    즉, 소프트웨어의 실행, 공유, 수정 등을 허가하지만 이를 통해 파생된 소프트웨어또한 Copyleft를 따라야한다.
    GNU가 여기에 속한다.
  • Copyright
    말 그대로 저작권에 대한 용어로 창작자들의 창작물을 보호하는 권리이다.
    창작자의 허가없이 사용, 공유, 수정등이 불가하다.

BSD(Berkely Software Distribution) License

해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한없이 배포할 수 있다. 다만 수정본의 재배포는 의무사항이 아니며 이를 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있다.

GNU(General Public License) GPL

GPL

General Public License 는 GNU GPL 또는 GPL로 불리며 free software재단에서
만든 free software license로 실행, 연구, 공유, 수정의 자유를 최종 사용자에게 보장한다
대표적으로 리눅스 커널이 이용하는 license이다.

 




요구사항
수정한 소스코드 또는 이를 활용한 소프트웨어 모두 GPL로 공개하여하 한다
- 라이선스 및 저작권 명시
- 변경사항 명시

MIT License

MIT에서 개발한 소프트웨어 라이센스로 BSD 라이센스에 기반하고 있다.
BSD와 마찬가지로 소프트웨어 수정, 배포, 상업적 이용, 공개에 대해서 자유롭다

 

 

 

'기타' 카테고리의 다른 글

[Wireshark] Download files from captured packets  (0) 2021.01.20
[Git] Git ignore 설정하기  (0) 2020.12.04

Homebrew?

homebrew는 Ubuntu의 apt, CentOs Fedora의 yum등과 같은 macOs용 패키지 관리자입니다.

Homebrew를 이용하면 java, tomcat, docker 등등 사용자가 직접 설치후 환경설정을 해야하는 패키지들을 손쉽게 설치할 수 있습니다.

설치하기

terminal 을 열고 아래의 text를 입력후 install 합니다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

 

 

페이지 내 에서 발생되는 XHR Response를 모니터링 하는 방법

두가지 방법을 소개하고자한다.

XHRHttpRequest 선언시 EventHandler에 등록하는 방법

const xhr = new XMLHttpRequest(),
    method = "GET",
    url = "https://developer.mozilla.org/";

xhr.open(method, url, true);
xhr.onreadystatechange = function () {
  // In local files, status is 0 upon success in Mozilla Firefox
  if(xhr.readyState === XMLHttpRequest.DONE) {
    var status = xhr.status;
    if (status === 0 || (status >= 200 && status < 400)) {
      // The request has been completed successfully
      console.log(xhr.responseText);
    } else {
      // Oh no! There has been an error with the request!
    }
  }
};
xhr.send();
//출처
//https://wiki.developer.mozilla.org/ko/docs/Web/API/XMLHttpRequest/onreadystatechange

이 방법은 XHR을 선언하면서 이벤트 등록을 통해 해당 xhr의 이벤트롤 콘솔로 감시할수 있습니다.

XHRHttpRequest 를 재정의 하는 방법

let oldXHROpen = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
    this.addEventListener('load', function() {
        console.log(this.response);
    });
    return oldXHROpen.apply(this, arguments);
}

 

'WEB > JS' 카테고리의 다른 글

XMLHttpRequest(XHR) 란 무엇인가.  (0) 2020.10.06

XHR은 무엇일까?

XHR은 XMLHttpRequest의 약자로 말 그대로 http 프로토콜을 통해 서버에 자원을 요청하기 위해 사용한다.

페이지 전체를 새로고침 할 필요 없이 원하는 데이터를 url에서 제공받을 수 있다.

대표적인 예로 Ajax가 있다.

Methods

  • abort이미 전송된 request를 중단
  • getAllResponseHeaders모든 ResponseHeader를 문자열로 반환합니다. response가 없는경우는 null 을 반환합니다.
  • getResponseHeader(headerName)header의 값들 중 해당하는 입력으로 들어온 이름과 일치하는 값을 반환합니다.
  • open(method, url[, async[, user[, password]]])request를 초기화 합니다
    url, 요청방법, 비동기 여부, 인증목적의 user, password 등을 포함합니다
  • send(body)
    request를 서버에 보냅니다.
    Document, Blob, BufferSource, FormData, URLSerchParams, USVString 등이 포함될 수 있습니다.
  • setRequestHeader(header, value)
    request header의 값을 지정합니다.
    open 과 send 사이에 call해야하며, 여러번 call할시에는 기존의 header's content에 더해지게 됩니다.

Example

 

5) Spring - 회원가입(ajax를 이용한 id 중복체크)

json을 이용하기 위한 lib 추가 pom.xml에 아래 코드를 추가해 줍니다. com.googlecode.json-simple json-simple 1.1 org.codehaus.jackson jackson-mapper-asl 1.9.13 Register.jsp 수정 ajax를 이용하기위해 jqu..

migusdn.tistory.com

에서 Jquery를 이용한 ajax를 XMLHttpRequest로 바꿔보겠다.

//Jquery

id = $("#user_id").val();
	
$.ajax({
    url: 'ID_Check',
    type: 'POST',
    dataType: 'text', //서버로부터 내가 받는 데이터의 타입
    contentType : 'text/plain; charset=utf-8;',//내가 서버로 보내는 데이터의 타입
    data: id ,
    success: function(data){
         if(data == 0){
         console.log("아이디 없음");
         alert("사용하실 수 있는 아이디입니다.");
         }else{
         	console.log("아이디 있음");
         	alert("중복된 아이디가 존재합니다.");
         }
    },
 });
 
//XMLHttpRequest

const id = document.getElementById("user_id").val();

var checkRequest = new XMLHttpRequest();

checkRequest.onload = function(){
	if(checkRequest.status === 200 || checkRequest.status === 201) {
		if(checkRequest.responseText == 0){
			console.log("아이디 없음");
			alert("사용하실 수 있는 아이디입니다.");
		} else {
			console.log("아이디 있음");
			alert("중복된 아이디가 존재합니다.");
		} 
	} else {
		console.log("error");
	}
};

checkRequest.open("POST", "ID_Check");
checkRequest.setRequestHeader("Content-Type", "text/plain; charset=utf-8;");
checkRequest.setRequestHeader("dataType", "text");
checkRequest.send(id);

출처: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest, https://xhr.spec.whatwg.org/

'WEB > JS' 카테고리의 다른 글

XHR response Monitering  (0) 2020.11.07

기존에 작성한 bbs_detail 페이지의 삭제 버튼에 대한 기능구현을 하려합니다.

먼저 삭제를 위해 BDao, BbsDao에 삭제관련된 인터페이스를 추가해주고 mapper/BDao.xml 에서는 삭제 쿼리문 작성 이들을 이용해 컨트롤로에서 삭제 수행 메소드를 작성하는 순서로 쓰겠습니다.


Dao/BDao.java 와 BbsDao.java의 수정


BDao.java

아래 메소드를 추가해줍니다.

public void Delete(String bbs_id);

BbsDao.java

	@Override
	public void Delete(String bbs_id) {
	}

mapper/BDao.xml의 수정


BDao.xml에 아래 쿼리문을 등록해줍니다.

	<delete id="Delete">
	DELETE
	FROM bbs
	WHERE bbs_id = #{bbs_id}
	</delete>

BbsController 의 수정


BbsController 의 하단에 아래 메소드를 추가해줍니다

	@ResponseBody
	@RequestMapping("/Delete")
	public String bbs_delete(HttpServletRequest request, Model model) {
		BDao dao = sqlSession.getMapper(BDao.class);
		dao.Delete(request.getParameter("bbs_id"));
		String str="<script>";
		str+="location.href='/app/bbs/';";
		str+="</script>";
		return str;
	}

위와 같이 작성하면 삭제가 잘 수행되는 것을 볼 수있다

'WEB > Spring' 카테고리의 다른 글

11) Spring - 게시글 수정  (0) 2019.11.18
10) Spring - 게시글 보기 구현  (0) 2019.11.01
9) Spring - 게시글 목록 구현  (0) 2019.11.01
8) Spring - 게시판 글쓰기 구현  (0) 2019.10.12
7) Spring - 로그아웃  (0) 2019.10.12

+ Recent posts